@videojs/html 10.0.0-beta.27 → 10.0.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
  2. package/cdn/adapter-CEnNWvii.js.map +1 -0
  3. package/cdn/adapter-DaKW8NzI.js +2 -0
  4. package/cdn/adapter-DaKW8NzI.js.map +1 -0
  5. package/cdn/audio-headless.dev.js +1 -1
  6. package/cdn/audio-headless.js +1 -1
  7. package/cdn/audio-minimal-ui.dev.js +2 -2
  8. package/cdn/audio-minimal-ui.js +1 -1
  9. package/cdn/audio-minimal.dev.js +5 -5
  10. package/cdn/audio-minimal.dev.js.map +1 -1
  11. package/cdn/audio-minimal.js +1 -1
  12. package/cdn/audio-minimal.js.map +1 -1
  13. package/cdn/audio-ui.dev.js +2 -2
  14. package/cdn/audio-ui.js +1 -1
  15. package/cdn/audio.dev.js +5 -5
  16. package/cdn/audio.dev.js.map +1 -1
  17. package/cdn/audio.js +1 -1
  18. package/cdn/audio.js.map +1 -1
  19. package/cdn/background-video-WKumpp49.js +59 -0
  20. package/cdn/background-video-WKumpp49.js.map +1 -0
  21. package/cdn/background-video-YHY_3-lX.js +2 -0
  22. package/cdn/background-video-YHY_3-lX.js.map +1 -0
  23. package/cdn/background.dev.js +3 -56
  24. package/cdn/background.dev.js.map +1 -1
  25. package/cdn/background.js +1 -1
  26. package/cdn/background.js.map +1 -1
  27. package/cdn/bn-CcLIScl6.js +108 -0
  28. package/cdn/bn-CcLIScl6.js.map +1 -0
  29. package/cdn/bn-KcCmQhYd.js +2 -0
  30. package/cdn/bn-KcCmQhYd.js.map +1 -0
  31. package/cdn/compounds-C4YYLyL2.js +8 -0
  32. package/cdn/compounds-C4YYLyL2.js.map +1 -0
  33. package/cdn/{compounds-CCvdpvge.js → compounds-C73u1MeO.js} +68 -71
  34. package/cdn/compounds-C73u1MeO.js.map +1 -0
  35. package/cdn/container-element-Dd0ZCdhK.js +14 -0
  36. package/cdn/container-element-Dd0ZCdhK.js.map +1 -0
  37. package/cdn/container-element-HHK_KZOE.js +376 -0
  38. package/cdn/container-element-HHK_KZOE.js.map +1 -0
  39. package/cdn/create-player-BU8LDJDL.js +2 -0
  40. package/cdn/create-player-BU8LDJDL.js.map +1 -0
  41. package/cdn/{create-player-BHFyOnWi.js → create-player-Db1CIvlK.js} +76 -424
  42. package/cdn/create-player-Db1CIvlK.js.map +1 -0
  43. package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
  44. package/cdn/default-A3aM0skz.js.map +1 -0
  45. package/cdn/default-BDyhiTCm.js +2 -0
  46. package/cdn/default-BDyhiTCm.js.map +1 -0
  47. package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
  48. package/cdn/default-C1_k1NeB.js.map +1 -0
  49. package/cdn/default-DHrMd4ie.js +2 -0
  50. package/cdn/default-DHrMd4ie.js.map +1 -0
  51. package/cdn/embed-params-D2e8u0d4.js +2 -0
  52. package/cdn/embed-params-D2e8u0d4.js.map +1 -0
  53. package/cdn/embed-params-W6T88S8x.js +39 -0
  54. package/cdn/embed-params-W6T88S8x.js.map +1 -0
  55. package/cdn/error-surface-BID4D3DW.js +59 -0
  56. package/cdn/error-surface-BID4D3DW.js.map +1 -0
  57. package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
  58. package/cdn/error-surface-D0bo71gD.js.map +1 -0
  59. package/cdn/{gesture-element-BNfMI8eh.js → gesture-element-CeRy1IVs.js} +2 -2
  60. package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
  61. package/cdn/{gesture-element-CG-Sx_5t.js → gesture-element-DB67OYCE.js} +3 -3
  62. package/cdn/gesture-element-DB67OYCE.js.map +1 -0
  63. package/cdn/hls-js-CiE4wOrG.js +2 -0
  64. package/cdn/{hls-js-6lW7L4th.js.map → hls-js-CiE4wOrG.js.map} +1 -1
  65. package/cdn/hls-js-DBKRCbQm.js +2 -0
  66. package/cdn/{hls-js-DCQzjzB5.js.map → hls-js-DBKRCbQm.js.map} +1 -1
  67. package/cdn/{hls-js-g1zdcyvE.js → hls-js-DX2NGCAr.js} +3 -2
  68. package/cdn/{hls-js-g1zdcyvE.js.map → hls-js-DX2NGCAr.js.map} +1 -1
  69. package/cdn/{hls-js-Cwj8UBx9.js → hls-js-JeH8yvsP.js} +3 -2
  70. package/cdn/{hls-js-Cwj8UBx9.js.map → hls-js-JeH8yvsP.js.map} +1 -1
  71. package/cdn/i18n-CE4KxKuj.js +2 -0
  72. package/cdn/i18n-CE4KxKuj.js.map +1 -0
  73. package/cdn/i18n-CpBDXf6M.js +2 -0
  74. package/cdn/{i18n-DfKGl5Rh.js.map → i18n-CpBDXf6M.js.map} +1 -1
  75. package/cdn/{i18n-Mtlmj1AA.js → i18n-D0nhPa0m.js} +2 -2
  76. package/cdn/{i18n-Mtlmj1AA.js.map → i18n-D0nhPa0m.js.map} +1 -1
  77. package/cdn/i18n-DyF_NfCk.js +157 -0
  78. package/cdn/i18n-DyF_NfCk.js.map +1 -0
  79. package/cdn/i18n.dev.js +3 -152
  80. package/cdn/i18n.dev.js.map +1 -1
  81. package/cdn/i18n.js +1 -1
  82. package/cdn/i18n.js.map +1 -1
  83. package/cdn/live-button-element-Co8z2LkI.js +2 -0
  84. package/cdn/{live-button-element-CWfkQUoy.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
  85. package/cdn/{live-button-element-B_y-ZJBy.js → live-button-element-zE-8uoR2.js} +5 -4
  86. package/cdn/live-button-element-zE-8uoR2.js.map +1 -0
  87. package/cdn/live-video-minimal.dev.js +12 -10
  88. package/cdn/live-video-minimal.dev.js.map +1 -1
  89. package/cdn/live-video-minimal.js +1 -1
  90. package/cdn/live-video-minimal.js.map +1 -1
  91. package/cdn/live-video.dev.js +13 -11
  92. package/cdn/live-video.dev.js.map +1 -1
  93. package/cdn/live-video.js +1 -1
  94. package/cdn/live-video.js.map +1 -1
  95. package/cdn/locales/bn.dev.js +1 -1
  96. package/cdn/locales/bn.js +1 -1
  97. package/cdn/media/background-video.dev.d.ts +1 -0
  98. package/cdn/media/background-video.dev.js +3 -0
  99. package/cdn/media/background-video.js +1 -0
  100. package/cdn/media/cloudflare-video.dev.d.ts +1 -0
  101. package/cdn/media/cloudflare-video.dev.js +668 -0
  102. package/cdn/media/cloudflare-video.dev.js.map +1 -0
  103. package/cdn/media/cloudflare-video.js +2 -0
  104. package/cdn/media/cloudflare-video.js.map +1 -0
  105. package/cdn/media/container.dev.d.ts +1 -0
  106. package/cdn/media/container.dev.js +8 -0
  107. package/cdn/media/container.dev.js.map +1 -0
  108. package/cdn/media/container.js +2 -0
  109. package/cdn/media/container.js.map +1 -0
  110. package/cdn/media/dash-video.dev.js +2 -1
  111. package/cdn/media/dash-video.js +2 -2
  112. package/cdn/media/dash-video.js.map +1 -1
  113. package/cdn/media/google-cast.dev.js +2 -31
  114. package/cdn/media/google-cast.dev.js.map +1 -1
  115. package/cdn/media/google-cast.js +3 -3
  116. package/cdn/media/google-cast.js.map +1 -1
  117. package/cdn/media/hls-audio.dev.js +2 -1
  118. package/cdn/media/hls-audio.js +1 -1
  119. package/cdn/media/hls-audio.js.map +1 -1
  120. package/cdn/media/hls-background-video.dev.js +2 -1
  121. package/cdn/media/hls-background-video.js +1 -1
  122. package/cdn/media/hls-background-video.js.map +1 -1
  123. package/cdn/media/hls-video.dev.js +2 -1
  124. package/cdn/media/hls-video.js +1 -1
  125. package/cdn/media/hls-video.js.map +1 -1
  126. package/cdn/media/hlsjs-video.dev.js +2 -1
  127. package/cdn/media/hlsjs-video.js +1 -1
  128. package/cdn/media/hlsjs-video.js.map +1 -1
  129. package/cdn/media/mux-audio/hls-js.dev.js +3 -1
  130. package/cdn/media/mux-audio/hls-js.js +1 -1
  131. package/cdn/media/mux-audio/spf.dev.js +3 -2
  132. package/cdn/media/mux-audio/spf.js +1 -1
  133. package/cdn/media/mux-audio/spf.js.map +1 -1
  134. package/cdn/media/mux-audio.dev.js +3 -1
  135. package/cdn/media/mux-audio.js +1 -1
  136. package/cdn/media/mux-background-video.dev.js +2 -1
  137. package/cdn/media/mux-background-video.js +1 -1
  138. package/cdn/media/mux-background-video.js.map +1 -1
  139. package/cdn/media/mux-data.dev.js +2 -1
  140. package/cdn/media/mux-data.dev.js.map +1 -1
  141. package/cdn/media/mux-data.js +2 -2
  142. package/cdn/media/mux-data.js.map +1 -1
  143. package/cdn/media/mux-video/hls-js.dev.js +3 -1
  144. package/cdn/media/mux-video/hls-js.js +1 -1
  145. package/cdn/media/mux-video/spf.dev.js +3 -2
  146. package/cdn/media/mux-video/spf.js +1 -1
  147. package/cdn/media/mux-video/spf.js.map +1 -1
  148. package/cdn/media/mux-video.dev.js +3 -1
  149. package/cdn/media/mux-video.js +1 -1
  150. package/cdn/media/native-hls-video.dev.js +1 -0
  151. package/cdn/media/native-hls-video.js +1 -1
  152. package/cdn/media/native-hls-video.js.map +1 -1
  153. package/cdn/media/spotify-audio.dev.d.ts +1 -0
  154. package/cdn/media/spotify-audio.dev.js +605 -0
  155. package/cdn/media/spotify-audio.dev.js.map +1 -0
  156. package/cdn/media/spotify-audio.js +2 -0
  157. package/cdn/media/spotify-audio.js.map +1 -0
  158. package/cdn/media/tiktok-video.dev.d.ts +1 -0
  159. package/cdn/media/tiktok-video.dev.js +636 -0
  160. package/cdn/media/tiktok-video.dev.js.map +1 -0
  161. package/cdn/media/tiktok-video.js +2 -0
  162. package/cdn/media/tiktok-video.js.map +1 -0
  163. package/cdn/media/twitch-video.dev.d.ts +1 -0
  164. package/cdn/media/twitch-video.dev.js +627 -0
  165. package/cdn/media/twitch-video.dev.js.map +1 -0
  166. package/cdn/media/twitch-video.js +2 -0
  167. package/cdn/media/twitch-video.js.map +1 -0
  168. package/cdn/media/vimeo-video.dev.d.ts +1 -0
  169. package/cdn/media/vimeo-video.dev.js +3011 -0
  170. package/cdn/media/vimeo-video.dev.js.map +1 -0
  171. package/cdn/media/vimeo-video.js +16 -0
  172. package/cdn/media/vimeo-video.js.map +1 -0
  173. package/cdn/media/youtube-video.dev.d.ts +1 -0
  174. package/cdn/media/youtube-video.dev.js +713 -0
  175. package/cdn/media/youtube-video.dev.js.map +1 -0
  176. package/cdn/media/youtube-video.js +2 -0
  177. package/cdn/media/youtube-video.js.map +1 -0
  178. package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
  179. package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
  180. package/cdn/{media-B_gQXwri.js → media-BNuI0Im7.js} +30 -8
  181. package/cdn/media-BNuI0Im7.js.map +1 -0
  182. package/cdn/{media-Cp3acYc8.js → media-BavrGKqa.js} +274 -5
  183. package/cdn/media-BavrGKqa.js.map +1 -0
  184. package/cdn/media-CQxFuDcv.js +2 -0
  185. package/cdn/{media-CbWsJJhU.js.map → media-CQxFuDcv.js.map} +1 -1
  186. package/cdn/media-CanBm0Jh.js +41 -0
  187. package/cdn/media-CanBm0Jh.js.map +1 -0
  188. package/cdn/media-D4tG62L5.js +2 -0
  189. package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
  190. package/cdn/{media-DRo3n8tM.js → media-DI6DvYm3.js} +4 -4
  191. package/cdn/{media-DRo3n8tM.js.map → media-DI6DvYm3.js.map} +1 -1
  192. package/cdn/media-DU3Xf5XR.js +2 -0
  193. package/cdn/media-DU3Xf5XR.js.map +1 -0
  194. package/cdn/media-mYKOAsk3.js +825 -0
  195. package/cdn/media-mYKOAsk3.js.map +1 -0
  196. package/cdn/media-played-ranges-CM2zeOGr.js +2 -0
  197. package/cdn/media-played-ranges-CM2zeOGr.js.map +1 -0
  198. package/cdn/media-played-ranges-Yd9acuMt.js +156 -0
  199. package/cdn/media-played-ranges-Yd9acuMt.js.map +1 -0
  200. package/cdn/media-zReLnePj.js +2 -0
  201. package/cdn/media-zReLnePj.js.map +1 -0
  202. package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
  203. package/cdn/minimal-3OmH0xQS.js.map +1 -0
  204. package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
  205. package/cdn/minimal-6w_Vyyl9.js.map +1 -0
  206. package/cdn/minimal-BWLTn7oQ.js +2 -0
  207. package/cdn/minimal-BWLTn7oQ.js.map +1 -0
  208. package/cdn/minimal-DIGrklyh.js +2 -0
  209. package/cdn/minimal-DIGrklyh.js.map +1 -0
  210. package/cdn/{minimal-ui-Bxcpf5Mb.js → minimal-ui-BCIESK8f.js} +9 -9
  211. package/cdn/{minimal-ui-Bxcpf5Mb.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
  212. package/cdn/minimal-ui-BXrq3z4U.js +2 -0
  213. package/cdn/{minimal-ui-BVKu9LWj.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
  214. package/cdn/{minimal-ui--JsmpU2q.js → minimal-ui-DEalpMk6.js} +5 -5
  215. package/cdn/{minimal-ui--JsmpU2q.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
  216. package/cdn/minimal-ui-vY3QgohH.js +2 -0
  217. package/cdn/{minimal-ui-AFk6Ut5f.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
  218. package/cdn/mixin-BqN0V06a.js +2 -0
  219. package/cdn/{mixin-DiB7dIef.js.map → mixin-BqN0V06a.js.map} +1 -1
  220. package/cdn/{mixin-CkNZwQXF.js → mixin-C193v40v.js} +67 -67
  221. package/cdn/mixin-C193v40v.js.map +1 -0
  222. package/cdn/noop-BxkeRIz9.js +6 -0
  223. package/cdn/noop-BxkeRIz9.js.map +1 -0
  224. package/cdn/noop-Ch0IHcOP.js +2 -0
  225. package/cdn/noop-Ch0IHcOP.js.map +1 -0
  226. package/cdn/{player-C4ix6TQq.js → player-B3GlPF90.js} +3 -2
  227. package/cdn/{player-C4ix6TQq.js.map → player-B3GlPF90.js.map} +1 -1
  228. package/cdn/player-CtTC7qa5.js +2 -0
  229. package/cdn/{player-B0ccW5-n.js.map → player-CtTC7qa5.js.map} +1 -1
  230. package/cdn/player-DKkph8UM.js +2 -0
  231. package/cdn/{player-srq1RGTj.js.map → player-DKkph8UM.js.map} +1 -1
  232. package/cdn/{player-B0qnepD5.js → player-DPDmTRvg.js} +3 -2
  233. package/cdn/{player-B0qnepD5.js.map → player-DPDmTRvg.js.map} +1 -1
  234. package/cdn/player-DrDd7LJi.js +2 -0
  235. package/cdn/{player-iIewo8Y9.js.map → player-DrDd7LJi.js.map} +1 -1
  236. package/cdn/{player-D4fdOLLk.js → player-L5UpZmT4.js} +3 -2
  237. package/cdn/{player-D4fdOLLk.js.map → player-L5UpZmT4.js.map} +1 -1
  238. package/cdn/{poster-element-BP1Ypgbf.js → poster-element-B5tdJ2ub.js} +192 -39
  239. package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
  240. package/cdn/poster-element-B8QwXSU_.js +2 -0
  241. package/cdn/poster-element-B8QwXSU_.js.map +1 -0
  242. package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
  243. package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
  244. package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
  245. package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
  246. package/cdn/script-D3ZkiqwO.js +2 -0
  247. package/cdn/script-D3ZkiqwO.js.map +1 -0
  248. package/cdn/script-erPJaaTz.js +33 -0
  249. package/cdn/script-erPJaaTz.js.map +1 -0
  250. package/cdn/{seek-button-element-TErrbilI.js → seek-button-element-5co-k0Dx.js} +7 -6
  251. package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
  252. package/cdn/seek-button-element-B8TkILg-.js +2 -0
  253. package/cdn/seek-button-element-B8TkILg-.js.map +1 -0
  254. package/cdn/shallow-equal-C7S8rj2f.js +16 -0
  255. package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
  256. package/cdn/shallow-equal-KV1zFqZi.js +2 -0
  257. package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
  258. package/cdn/{skin-element-wPSb4AAs.js → skin-element-DrkI8xuM.js} +2 -2
  259. package/cdn/{skin-element-wPSb4AAs.js.map → skin-element-DrkI8xuM.js.map} +1 -1
  260. package/cdn/{skin-element-1_MG2zgS.js → skin-element-DvX6Bxsv.js} +2 -2
  261. package/cdn/{skin-element-1_MG2zgS.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
  262. package/cdn/text-element-BoY6AhMn.js +2 -0
  263. package/cdn/{text-element-Bsyglab8.js.map → text-element-BoY6AhMn.js.map} +1 -1
  264. package/cdn/{text-element-DTB9_2HX.js → text-element-cg6l21cd.js} +3 -3
  265. package/cdn/{text-element-DTB9_2HX.js.map → text-element-cg6l21cd.js.map} +1 -1
  266. package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
  267. package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
  268. package/cdn/{time-slider-chapters-element-DPgaLdBt.js → time-slider-chapters-element-CznFQWFm.js} +7 -6
  269. package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
  270. package/cdn/{translate-text-DP0CzUCC.js → translate-text-BWvoW5-r.js} +2 -7
  271. package/cdn/translate-text-BWvoW5-r.js.map +1 -0
  272. package/cdn/translate-text-TzSgu_oe.js +2 -0
  273. package/cdn/translate-text-TzSgu_oe.js.map +1 -0
  274. package/cdn/{ui-D0AokGxw.js → ui-BwzqkJNK.js} +8 -8
  275. package/cdn/{ui-D0AokGxw.js.map → ui-BwzqkJNK.js.map} +1 -1
  276. package/cdn/ui-DayfItun.js +2 -0
  277. package/cdn/{ui-CecDxhTX.js.map → ui-DayfItun.js.map} +1 -1
  278. package/cdn/ui-PSnD-pv8.js +2 -0
  279. package/cdn/{ui-ChWM6Xz2.js.map → ui-PSnD-pv8.js.map} +1 -1
  280. package/cdn/{ui-p36Szn71.js → ui-fnKp94a7.js} +10 -10
  281. package/cdn/{ui-p36Szn71.js.map → ui-fnKp94a7.js.map} +1 -1
  282. package/cdn/video-headless.dev.js +1 -1
  283. package/cdn/video-headless.js +1 -1
  284. package/cdn/video-minimal-ui.dev.js +2 -2
  285. package/cdn/video-minimal-ui.js +1 -1
  286. package/cdn/video-minimal.dev.js +8 -6
  287. package/cdn/video-minimal.dev.js.map +1 -1
  288. package/cdn/video-minimal.js +1 -1
  289. package/cdn/video-minimal.js.map +1 -1
  290. package/cdn/video-ui.dev.js +2 -2
  291. package/cdn/video-ui.js +1 -1
  292. package/cdn/video.dev.js +9 -7
  293. package/cdn/video.dev.js.map +1 -1
  294. package/cdn/video.js +1 -1
  295. package/cdn/video.js.map +1 -1
  296. package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
  297. package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
  298. package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
  299. package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
  300. package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
  301. package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
  302. package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
  303. package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
  304. package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
  305. package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
  306. package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
  307. package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
  308. package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
  309. package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
  310. package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
  311. package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  312. package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
  313. package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
  314. package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
  315. package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  316. package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  317. package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
  318. package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  319. package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
  320. package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
  321. package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  322. package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  323. package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
  324. package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
  325. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  326. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  327. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  328. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  329. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  330. package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  331. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  332. package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  333. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  334. package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  335. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  336. package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  337. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  338. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  339. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  340. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  341. package/dist/default/define/audio/minimal-skin.css +117 -118
  342. package/dist/default/define/audio/skin.css +95 -99
  343. package/dist/default/define/live-audio/minimal-skin.css +117 -118
  344. package/dist/default/define/live-audio/skin.css +95 -99
  345. package/dist/default/define/live-video/minimal-skin.css +158 -137
  346. package/dist/default/define/live-video/minimal-skin.js +1 -1
  347. package/dist/default/define/live-video/minimal-skin.js.map +1 -1
  348. package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
  349. package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
  350. package/dist/default/define/live-video/skin.css +120 -106
  351. package/dist/default/define/live-video/skin.js +1 -1
  352. package/dist/default/define/live-video/skin.js.map +1 -1
  353. package/dist/default/define/live-video/skin.tailwind.js +1 -1
  354. package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
  355. package/dist/default/define/ui/gesture.js +7 -0
  356. package/dist/default/define/ui/gesture.js.map +1 -0
  357. package/dist/default/define/video/minimal-skin.css +158 -137
  358. package/dist/default/define/video/minimal-skin.js +1 -1
  359. package/dist/default/define/video/minimal-skin.js.map +1 -1
  360. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  361. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  362. package/dist/default/define/video/skin.css +120 -106
  363. package/dist/default/define/video/skin.js +1 -1
  364. package/dist/default/define/video/skin.js.map +1 -1
  365. package/dist/default/define/video/skin.tailwind.js +1 -1
  366. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  367. package/dist/default/icons/dist/element/default/icons.js +1 -1
  368. package/dist/default/icons/dist/element/default/icons.js.map +1 -1
  369. package/dist/default/icons/dist/element/minimal/icons.js +1 -1
  370. package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
  371. package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
  372. package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
  373. package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
  374. package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  375. package/dist/default/icons/dist/render/default/index.js +1 -1
  376. package/dist/default/icons/dist/render/default/index.js.map +1 -1
  377. package/dist/default/icons/dist/render/minimal/index.js +1 -1
  378. package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
  379. package/dist/default/media/hls-background-video/media.js +18 -0
  380. package/dist/default/media/hls-background-video/media.js.map +1 -1
  381. package/dist/default/media/tiktok-video/media.js +3 -2
  382. package/dist/default/media/tiktok-video/media.js.map +1 -1
  383. package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
  384. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  385. package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
  386. package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  387. package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
  388. package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  389. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  390. package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  391. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  392. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  393. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  394. package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  395. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  396. package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  397. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  398. package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  399. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  400. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  401. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  402. package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  403. package/dist/default/store/provider-mixin.js +22 -8
  404. package/dist/default/store/provider-mixin.js.map +1 -1
  405. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  406. package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  407. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  408. package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  409. package/dist/default/ui/gesture/gesture-element.js.map +1 -1
  410. package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
  411. package/dist/default/ui/menu/context.js.map +1 -1
  412. package/dist/default/ui/menu/menu-element.js +28 -27
  413. package/dist/default/ui/menu/menu-element.js.map +1 -1
  414. package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
  415. package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
  416. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  417. package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  418. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  419. package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  420. package/dist/default/ui/poster/poster-element.js +138 -8
  421. package/dist/default/ui/poster/poster-element.js.map +1 -1
  422. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  423. package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  424. package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
  425. package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
  426. package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
  427. package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
  428. package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
  429. package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
  430. package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
  431. package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
  432. package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
  433. package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
  434. package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
  435. package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
  436. package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
  437. package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
  438. package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
  439. package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
  440. package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
  441. package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
  442. package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
  443. package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
  444. package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
  445. package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
  446. package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
  447. package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
  448. package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
  449. package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
  450. package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
  451. package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
  452. package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
  453. package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
  454. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  455. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  456. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  457. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  458. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
  459. package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
  460. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
  461. package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
  462. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
  463. package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
  464. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
  465. package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
  466. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  467. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  468. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  469. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  470. package/dist/dev/define/audio/minimal-skin.css +117 -118
  471. package/dist/dev/define/audio/skin.css +95 -99
  472. package/dist/dev/define/live-audio/minimal-skin.css +117 -118
  473. package/dist/dev/define/live-audio/skin.css +95 -99
  474. package/dist/dev/define/live-video/minimal-skin.css +158 -137
  475. package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
  476. package/dist/dev/define/live-video/minimal-skin.js +3 -1
  477. package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
  478. package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
  479. package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
  480. package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
  481. package/dist/dev/define/live-video/skin.css +120 -106
  482. package/dist/dev/define/live-video/skin.d.ts.map +1 -1
  483. package/dist/dev/define/live-video/skin.js +3 -1
  484. package/dist/dev/define/live-video/skin.js.map +1 -1
  485. package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
  486. package/dist/dev/define/live-video/skin.tailwind.js +4 -2
  487. package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
  488. package/dist/dev/define/ui/gesture.d.ts +8 -0
  489. package/dist/dev/define/ui/gesture.d.ts.map +1 -0
  490. package/dist/dev/define/ui/gesture.js +7 -0
  491. package/dist/dev/define/ui/gesture.js.map +1 -0
  492. package/dist/dev/define/video/minimal-skin.css +158 -137
  493. package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
  494. package/dist/dev/define/video/minimal-skin.js +3 -1
  495. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  496. package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
  497. package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
  498. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  499. package/dist/dev/define/video/skin.css +120 -106
  500. package/dist/dev/define/video/skin.d.ts.map +1 -1
  501. package/dist/dev/define/video/skin.js +3 -1
  502. package/dist/dev/define/video/skin.js.map +1 -1
  503. package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
  504. package/dist/dev/define/video/skin.tailwind.js +4 -2
  505. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  506. package/dist/dev/media/hls-background-video/media.d.ts +16 -0
  507. package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
  508. package/dist/dev/media/hls-background-video/media.js +18 -0
  509. package/dist/dev/media/hls-background-video/media.js.map +1 -1
  510. package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
  511. package/dist/dev/media/tiktok-video/media.js +10 -7
  512. package/dist/dev/media/tiktok-video/media.js.map +1 -1
  513. package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
  514. package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
  515. package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
  516. package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
  517. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
  518. package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
  519. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
  520. package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
  521. package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
  522. package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
  523. package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
  524. package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
  525. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
  526. package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  527. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
  528. package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
  529. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +13 -13
  530. package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
  531. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
  532. package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
  533. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
  534. package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  535. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
  536. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
  537. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
  538. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
  539. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
  540. package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
  541. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
  542. package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  543. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
  544. package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
  545. package/dist/dev/store/provider-mixin.d.ts.map +1 -1
  546. package/dist/dev/store/provider-mixin.js +24 -8
  547. package/dist/dev/store/provider-mixin.js.map +1 -1
  548. package/dist/dev/store/types.d.ts +2 -2
  549. package/dist/dev/store/types.d.ts.map +1 -1
  550. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
  551. package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
  552. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
  553. package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
  554. package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
  555. package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
  556. package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
  557. package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
  558. package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
  559. package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
  560. package/dist/dev/ui/menu/context.d.ts +8 -8
  561. package/dist/dev/ui/menu/context.d.ts.map +1 -1
  562. package/dist/dev/ui/menu/context.js.map +1 -1
  563. package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
  564. package/dist/dev/ui/menu/menu-element.js +28 -27
  565. package/dist/dev/ui/menu/menu-element.js.map +1 -1
  566. package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
  567. package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
  568. package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
  569. package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
  570. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
  571. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
  572. package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
  573. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
  574. package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
  575. package/dist/dev/ui/poster/poster-element.d.ts +20 -18
  576. package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
  577. package/dist/dev/ui/poster/poster-element.js +145 -8
  578. package/dist/dev/ui/poster/poster-element.js.map +1 -1
  579. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
  580. package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
  581. package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
  582. package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
  583. package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
  584. package/docs/README.md +1 -1
  585. package/docs/concepts/features.md +2 -2
  586. package/docs/concepts/media-sources.md +79 -1
  587. package/docs/concepts/skins.md +122 -108
  588. package/docs/how-to/build-your-own-component.md +1 -1
  589. package/docs/how-to/customize-skins.md +499 -469
  590. package/docs/how-to/migrate-from-media-chrome.md +359 -0
  591. package/docs/how-to/migrate-from-mux-player.md +535 -0
  592. package/docs/how-to/migrate-from-plyr.md +394 -0
  593. package/docs/how-to/migrate-from-video-js-8.md +594 -0
  594. package/docs/llms.txt +9 -0
  595. package/docs/reference/feature-volume.md +3 -1
  596. package/docs/reference/menu.md +3 -19
  597. package/docs/reference/mute-button.md +34 -0
  598. package/docs/reference/popover.md +2 -2
  599. package/docs/reference/poster.md +211 -21
  600. package/docs/reference/slider.md +1 -1
  601. package/docs/reference/time-slider.md +1 -1
  602. package/docs/reference/tooltip.md +6 -6
  603. package/docs/reference/volume-slider.md +2 -2
  604. package/package.json +15 -9
  605. package/cdn/adapter-Bk03SAxn.js +0 -2
  606. package/cdn/adapter-Bk03SAxn.js.map +0 -1
  607. package/cdn/adapter-XTen-YVQ.js.map +0 -1
  608. package/cdn/bn-DdelKD_n.js +0 -108
  609. package/cdn/bn-DdelKD_n.js.map +0 -1
  610. package/cdn/bn-YS8ruMcO.js +0 -2
  611. package/cdn/bn-YS8ruMcO.js.map +0 -1
  612. package/cdn/compounds-CCvdpvge.js.map +0 -1
  613. package/cdn/compounds-CJ6SbYAh.js +0 -8
  614. package/cdn/compounds-CJ6SbYAh.js.map +0 -1
  615. package/cdn/create-player-BHFyOnWi.js.map +0 -1
  616. package/cdn/create-player-CbpxjDaZ.js +0 -14
  617. package/cdn/create-player-CbpxjDaZ.js.map +0 -1
  618. package/cdn/default-BqQDVloS.js.map +0 -1
  619. package/cdn/default-CXWVp2oG.js +0 -2
  620. package/cdn/default-CXWVp2oG.js.map +0 -1
  621. package/cdn/default-Dw6cIEqT.js +0 -2
  622. package/cdn/default-Dw6cIEqT.js.map +0 -1
  623. package/cdn/default-I2LasfxC.js.map +0 -1
  624. package/cdn/error-surface-DCT1m2p1.js +0 -2
  625. package/cdn/error-surface-DCT1m2p1.js.map +0 -1
  626. package/cdn/error-surface-drmCvBVW.js.map +0 -1
  627. package/cdn/gesture-element-BNfMI8eh.js.map +0 -1
  628. package/cdn/gesture-element-CG-Sx_5t.js.map +0 -1
  629. package/cdn/hls-js-6lW7L4th.js +0 -2
  630. package/cdn/hls-js-DCQzjzB5.js +0 -2
  631. package/cdn/i18n-DfKGl5Rh.js +0 -2
  632. package/cdn/live-button-element-B_y-ZJBy.js.map +0 -1
  633. package/cdn/live-button-element-CWfkQUoy.js +0 -2
  634. package/cdn/media-5ODYtX1-.js +0 -2
  635. package/cdn/media-5ODYtX1-.js.map +0 -1
  636. package/cdn/media-BTipOcKo.js +0 -2
  637. package/cdn/media-B_gQXwri.js.map +0 -1
  638. package/cdn/media-CPWNSZFX.js +0 -41
  639. package/cdn/media-CPWNSZFX.js.map +0 -1
  640. package/cdn/media-CbWsJJhU.js +0 -2
  641. package/cdn/media-Cp3acYc8.js.map +0 -1
  642. package/cdn/media-Dq4zmIJa2.js +0 -2
  643. package/cdn/media-Dq4zmIJa2.js.map +0 -1
  644. package/cdn/media-suYcjCG22.js +0 -445
  645. package/cdn/media-suYcjCG22.js.map +0 -1
  646. package/cdn/minimal-BedCvMBG.js +0 -2
  647. package/cdn/minimal-BedCvMBG.js.map +0 -1
  648. package/cdn/minimal-BoP112ye.js +0 -2
  649. package/cdn/minimal-BoP112ye.js.map +0 -1
  650. package/cdn/minimal-DLosvq31.js.map +0 -1
  651. package/cdn/minimal-DQCLKRyR.js.map +0 -1
  652. package/cdn/minimal-ui-AFk6Ut5f.js +0 -2
  653. package/cdn/minimal-ui-BVKu9LWj.js +0 -2
  654. package/cdn/mixin-CkNZwQXF.js.map +0 -1
  655. package/cdn/mixin-DiB7dIef.js +0 -2
  656. package/cdn/player-B0ccW5-n.js +0 -2
  657. package/cdn/player-iIewo8Y9.js +0 -2
  658. package/cdn/player-srq1RGTj.js +0 -2
  659. package/cdn/poster-element-BP1Ypgbf.js.map +0 -1
  660. package/cdn/poster-element-S-rr412t.js +0 -2
  661. package/cdn/poster-element-S-rr412t.js.map +0 -1
  662. package/cdn/seek-button-element-DxLmm58Y.js +0 -2
  663. package/cdn/seek-button-element-DxLmm58Y.js.map +0 -1
  664. package/cdn/seek-button-element-TErrbilI.js.map +0 -1
  665. package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
  666. package/cdn/select-tracks-xV1s28xD.js +0 -59
  667. package/cdn/select-tracks-xV1s28xD.js.map +0 -1
  668. package/cdn/text-element-Bsyglab8.js +0 -2
  669. package/cdn/time-slider-chapters-element-DPgaLdBt.js.map +0 -1
  670. package/cdn/time-slider-chapters-element-MdlcovBu.js +0 -2
  671. package/cdn/time-slider-chapters-element-MdlcovBu.js.map +0 -1
  672. package/cdn/translate-text-BPMWpzFm.js +0 -2
  673. package/cdn/translate-text-BPMWpzFm.js.map +0 -1
  674. package/cdn/translate-text-DP0CzUCC.js.map +0 -1
  675. package/cdn/ui-CecDxhTX.js +0 -2
  676. package/cdn/ui-ChWM6Xz2.js +0 -2
@@ -1,2 +1,2 @@
1
- import{r as e}from"./predicate-LbFu-fPH.js";import{k as t}from"./compounds-CJ6SbYAh.js";import{n,w as r}from"./create-player-CbpxjDaZ.js";import{n as i,t as a}from"./media-element-Cp5PrNre.js";import{r as o,t as s}from"./context-C2rsoDxk.js";const c={seekStep:t.seekStep,volumeStep:t.volumeStep,speedUp:t.speedUp,speedDown:t.speedDown};function l(t){return c[t]||(({store:n})=>{let r=n.state[t];e(r)&&r()})}var u=class{#e=0;#t=null;handleUp(e,t){if(e.resolve(`doubletap`).length>0){let n=Date.now();if(n-this.#e<200){this.#n(),this.#e=0,e.resolve(`doubletap`)[0]?.onActivate(t);return}this.#e=n,this.#n(),this.#t=setTimeout(()=>{this.#t=null,this.#e=0,e.resolve(`tap`)[0]?.onActivate(t)},200);return}e.resolve(`tap`)[0]?.onActivate(t)}#n(){this.#t!==null&&(clearTimeout(this.#t),this.#t=null)}reset(){this.#n(),this.#e=0}};const d=new WeakMap;function f(e){let t=d.get(e);return t||(t=new u,d.set(e,t),t)}function p(e,t,n){return r(e).add({type:`tap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}function m(e,t,n){return r(e).add({type:`doubletap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}var h=class extends a{constructor(...e){super(...e),this.type=``,this.action=``,this.value=void 0,this.pointer=void 0,this.region=void 0,this.disabled=!1,this.#e=new n(this,o),this.#t=new i(this,{context:s,callback:()=>this.requestUpdate(),subscribe:!0}),this.#n=null}static{this.tagName=`media-gesture`}static{this.properties={type:{type:String},action:{type:String},value:{type:Number},pointer:{type:String},region:{type:String},disabled:{type:Boolean}}}#e;#t;#n;connectedCallback(){super.connectedCallback(),this.style.display=`none`,this.#r()}disconnectedCallback(){super.disconnectedCallback(),this.#i()}update(e){super.update(e),this.isConnected&&(this.#i(),this.#r())}#r(){let e=this.#e.value,t=this.#t.value?.container;if(!this.type||!this.action||!e||!t)return;let n=l(this.action);if(!n)return;let{value:r}=this,i=t=>{n({store:e,value:r,event:t})},a={pointer:this.pointer,region:this.region,disabled:this.disabled,action:this.action,value:this.value};this.type===`doubletap`?this.#n=m(t,i,a):this.#n=p(t,i,a)}#i(){this.#n?.(),this.#n=null}};export{h as t};
2
- //# sourceMappingURL=gesture-element-BNfMI8eh.js.map
1
+ import{r as e}from"./predicate-LbFu-fPH.js";import{O as t}from"./compounds-C4YYLyL2.js";import{n,t as r}from"./media-element-Cp5PrNre.js";import{r as i,t as a}from"./context-C2rsoDxk.js";import{S as o,n as s}from"./create-player-BU8LDJDL.js";const c={seekStep:t.seekStep,volumeStep:t.volumeStep,speedUp:t.speedUp,speedDown:t.speedDown};function l(t){return c[t]||(({store:n})=>{let r=n.state[t];e(r)&&r()})}var u=class{#e=0;#t=null;handleUp(e,t){if(e.resolve(`doubletap`).length>0){let n=Date.now();if(n-this.#e<200){this.#n(),this.#e=0,e.resolve(`doubletap`)[0]?.onActivate(t);return}this.#e=n,this.#n(),this.#t=setTimeout(()=>{this.#t=null,this.#e=0,e.resolve(`tap`)[0]?.onActivate(t)},200);return}e.resolve(`tap`)[0]?.onActivate(t)}#n(){this.#t!==null&&(clearTimeout(this.#t),this.#t=null)}reset(){this.#n(),this.#e=0}};const d=new WeakMap;function f(e){let t=d.get(e);return t||(t=new u,d.set(e,t),t)}function p(e,t,n){return o(e).add({type:`tap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}function m(e,t,n){return o(e).add({type:`doubletap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}var h=class extends r{constructor(...e){super(...e),this.type=``,this.action=``,this.value=void 0,this.pointer=void 0,this.region=void 0,this.disabled=!1,this.#e=new s(this,i),this.#t=new n(this,{context:a,callback:()=>this.requestUpdate(),subscribe:!0}),this.#n=null}static{this.tagName=`media-gesture`}static{this.properties={type:{type:String},action:{type:String},value:{type:Number},pointer:{type:String},region:{type:String},disabled:{type:Boolean}}}#e;#t;#n;connectedCallback(){super.connectedCallback(),this.style.display=`none`,this.#r()}disconnectedCallback(){super.disconnectedCallback(),this.#i()}update(e){super.update(e),this.isConnected&&(this.#i(),this.#r())}#r(){let e=this.#e.value,t=this.#t.value?.container;if(!this.type||!this.action||!e||!t)return;let n=l(this.action);if(!n)return;let{value:r}=this,i=t=>{n({store:e,value:r,event:t})},a={pointer:this.pointer,region:this.region,disabled:this.disabled,action:this.action,value:this.value};this.type===`doubletap`?this.#n=m(t,i,a):this.#n=p(t,i,a)}#i(){this.#n?.(),this.#n=null}};export{h as t};
2
+ //# sourceMappingURL=gesture-element-CeRy1IVs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture-element-CeRy1IVs.js","names":["#lastTapTime","#clearTimer","#tapTimer","ContextConsumer","#player","#container","#register","#unregister","#cleanup"],"sources":["../../core/dist/default/dom/gesture/actions.js","../../core/dist/default/dom/gesture/tap.js","../../core/dist/default/dom/gesture/create-tap-gesture.js","../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import { MEDIA_INPUT_ACTION_OVERRIDES } from \"../media-actions.js\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/dom/gesture/actions.ts\n/** Actions that need custom logic beyond `store.state[action]()`. */\nconst GESTURE_ACTION_OVERRIDES = {\n\tseekStep: MEDIA_INPUT_ACTION_OVERRIDES.seekStep,\n\tvolumeStep: MEDIA_INPUT_ACTION_OVERRIDES.volumeStep,\n\tspeedUp: MEDIA_INPUT_ACTION_OVERRIDES.speedUp,\n\tspeedDown: MEDIA_INPUT_ACTION_OVERRIDES.speedDown\n};\nfunction resolveGestureAction(name) {\n\tconst override = GESTURE_ACTION_OVERRIDES[name];\n\tif (override) return override;\n\treturn ({ store }) => {\n\t\tconst method = store.state[name];\n\t\tif (isFunction(method)) method();\n\t};\n}\n//#endregion\nexport { resolveGestureAction };\n\n//# sourceMappingURL=actions.js.map","//#region src/dom/gesture/tap.ts\nconst DOUBLETAP_WINDOW = 200;\n/**\n* Recognizes tap vs doubletap from quick pointer-up events.\n*\n* Stateful recognizer — tracks tap count and doubletap timing.\n* The coordinator handles pointer-down timing (tap threshold) and\n* calls `handleUp()` only for quick taps that passed the threshold check.\n*/\nvar TapRecognizer = class {\n\t#lastTapTime = 0;\n\t#tapTimer = null;\n\thandleUp(matches, event) {\n\t\tif (matches.resolve(\"doubletap\").length > 0) {\n\t\t\tconst now = Date.now();\n\t\t\tif (now - this.#lastTapTime < DOUBLETAP_WINDOW) {\n\t\t\t\tthis.#clearTimer();\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"doubletap\")[0]?.onActivate(event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.#lastTapTime = now;\n\t\t\tthis.#clearTimer();\n\t\t\tthis.#tapTimer = setTimeout(() => {\n\t\t\t\tthis.#tapTimer = null;\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t\t\t}, DOUBLETAP_WINDOW);\n\t\t\treturn;\n\t\t}\n\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t}\n\t#clearTimer() {\n\t\tif (this.#tapTimer !== null) {\n\t\t\tclearTimeout(this.#tapTimer);\n\t\t\tthis.#tapTimer = null;\n\t\t}\n\t}\n\treset() {\n\t\tthis.#clearTimer();\n\t\tthis.#lastTapTime = 0;\n\t}\n};\n//#endregion\nexport { TapRecognizer };\n\n//# sourceMappingURL=tap.js.map","import { getGestureCoordinator } from \"./coordinator.js\";\nimport { TapRecognizer } from \"./tap.js\";\n//#region src/dom/gesture/create-tap-gesture.ts\nconst recognizers = /* @__PURE__ */ new WeakMap();\nfunction getRecognizer(target) {\n\tlet recognizer = recognizers.get(target);\n\tif (recognizer) return recognizer;\n\trecognizer = new TapRecognizer();\n\trecognizers.set(target, recognizer);\n\treturn recognizer;\n}\n/**\n* Register a tap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createTapGesture(container, (event) => {\n* store.paused ? store.play() : store.pause();\n* }, { pointer: 'mouse' });\n* ```\n*/\nfunction createTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"tap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n/**\n* Register a doubletap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createDoubleTapGesture(container, (event) => {\n* store.fullscreen ? store.exitFullscreen() : store.requestFullscreen();\n* }, { region: 'center' });\n* ```\n*/\nfunction createDoubleTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"doubletap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n//#endregion\nexport { createDoubleTapGesture, createTapGesture };\n\n//# sourceMappingURL=create-tap-gesture.js.map","import type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture, createTapGesture, resolveGestureAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: GestureProps['type'] | '' = '';\n action: GestureProps['action'] = '';\n value: GestureProps['value'] = undefined;\n pointer: GestureProps['pointer'] = undefined;\n region: GestureProps['region'] = undefined;\n disabled: NonNullable<GestureProps['disabled']> = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n value: this.value,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { r as isFunction } from "./predicate-faYxAB6Z.js";
2
- import { A as MEDIA_INPUT_ACTION_OVERRIDES } from "./compounds-CCvdpvge.js";
3
- import { n as PlayerController, w as getGestureCoordinator } from "./create-player-BHFyOnWi.js";
2
+ import { k as MEDIA_INPUT_ACTION_OVERRIDES } from "./compounds-C73u1MeO.js";
4
3
  import { n as ContextConsumer, t as MediaElement } from "./media-element-CJY3JIgc.js";
5
4
  import { r as playerContext, t as containerContext } from "./context-OhQY847V.js";
5
+ import { S as getGestureCoordinator, n as PlayerController } from "./create-player-Db1CIvlK.js";
6
6
 
7
7
  //#region ../core/dist/dev/dom/gesture/actions.js
8
8
  /** Actions that need custom logic beyond `store.state[action]()`. */
@@ -205,4 +205,4 @@ var GestureElement = class extends MediaElement {
205
205
 
206
206
  //#endregion
207
207
  export { GestureElement as t };
208
- //# sourceMappingURL=gesture-element-CG-Sx_5t.js.map
208
+ //# sourceMappingURL=gesture-element-DB67OYCE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gesture-element-DB67OYCE.js","names":["#lastTapTime","#clearTimer","#tapTimer","#player","#container","#register","#unregister","#cleanup"],"sources":["../../core/dist/dev/dom/gesture/actions.js","../../core/dist/dev/dom/gesture/tap.js","../../core/dist/dev/dom/gesture/create-tap-gesture.js","../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import { MEDIA_INPUT_ACTION_OVERRIDES } from \"../media-actions.js\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/dom/gesture/actions.ts\n/** Actions that need custom logic beyond `store.state[action]()`. */\nconst GESTURE_ACTION_OVERRIDES = {\n\tseekStep: MEDIA_INPUT_ACTION_OVERRIDES.seekStep,\n\tvolumeStep: MEDIA_INPUT_ACTION_OVERRIDES.volumeStep,\n\tspeedUp: MEDIA_INPUT_ACTION_OVERRIDES.speedUp,\n\tspeedDown: MEDIA_INPUT_ACTION_OVERRIDES.speedDown\n};\nfunction resolveGestureAction(name) {\n\tconst override = GESTURE_ACTION_OVERRIDES[name];\n\tif (override) return override;\n\treturn ({ store }) => {\n\t\tconst method = store.state[name];\n\t\tif (isFunction(method)) method();\n\t\telse console.warn(`[vjs-gesture] Unknown action: \"${name}\"`);\n\t};\n}\n//#endregion\nexport { resolveGestureAction };\n\n//# sourceMappingURL=actions.js.map","//#region src/dom/gesture/tap.ts\nconst DOUBLETAP_WINDOW = 200;\n/**\n* Recognizes tap vs doubletap from quick pointer-up events.\n*\n* Stateful recognizer — tracks tap count and doubletap timing.\n* The coordinator handles pointer-down timing (tap threshold) and\n* calls `handleUp()` only for quick taps that passed the threshold check.\n*/\nvar TapRecognizer = class {\n\t#lastTapTime = 0;\n\t#tapTimer = null;\n\thandleUp(matches, event) {\n\t\tif (matches.resolve(\"doubletap\").length > 0) {\n\t\t\tconst now = Date.now();\n\t\t\tif (now - this.#lastTapTime < DOUBLETAP_WINDOW) {\n\t\t\t\tthis.#clearTimer();\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"doubletap\")[0]?.onActivate(event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.#lastTapTime = now;\n\t\t\tthis.#clearTimer();\n\t\t\tthis.#tapTimer = setTimeout(() => {\n\t\t\t\tthis.#tapTimer = null;\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t\t\t}, DOUBLETAP_WINDOW);\n\t\t\treturn;\n\t\t}\n\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t}\n\t#clearTimer() {\n\t\tif (this.#tapTimer !== null) {\n\t\t\tclearTimeout(this.#tapTimer);\n\t\t\tthis.#tapTimer = null;\n\t\t}\n\t}\n\treset() {\n\t\tthis.#clearTimer();\n\t\tthis.#lastTapTime = 0;\n\t}\n};\n//#endregion\nexport { TapRecognizer };\n\n//# sourceMappingURL=tap.js.map","import { getGestureCoordinator } from \"./coordinator.js\";\nimport { TapRecognizer } from \"./tap.js\";\n//#region src/dom/gesture/create-tap-gesture.ts\nconst recognizers = /* @__PURE__ */ new WeakMap();\nfunction getRecognizer(target) {\n\tlet recognizer = recognizers.get(target);\n\tif (recognizer) return recognizer;\n\trecognizer = new TapRecognizer();\n\trecognizers.set(target, recognizer);\n\treturn recognizer;\n}\n/**\n* Register a tap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createTapGesture(container, (event) => {\n* store.paused ? store.play() : store.pause();\n* }, { pointer: 'mouse' });\n* ```\n*/\nfunction createTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"tap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n/**\n* Register a doubletap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createDoubleTapGesture(container, (event) => {\n* store.fullscreen ? store.exitFullscreen() : store.requestFullscreen();\n* }, { region: 'center' });\n* ```\n*/\nfunction createDoubleTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"doubletap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n//#endregion\nexport { createDoubleTapGesture, createTapGesture };\n\n//# sourceMappingURL=create-tap-gesture.js.map","import type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture, createTapGesture, resolveGestureAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: GestureProps['type'] | '' = '';\n action: GestureProps['action'] = '';\n value: GestureProps['value'] = undefined;\n pointer: GestureProps['pointer'] = undefined;\n region: GestureProps['region'] = undefined;\n disabled: NonNullable<GestureProps['disabled']> = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n value: this.value,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./custom-media-element-8pSkwn42.js";import{i as t}from"./context-C2rsoDxk.js";import{t as n}from"./media-attach-mixin-Igi3-1UG.js";import{t as r}from"./media-DU3Xf5XR.js";import{t as i}from"./mixin-ypVl8-O_.js";const a=i(n(e(`audio`,r)));var o=class extends a{},s=class extends o{static{this.tagName=`mux-audio`}};t(s);export{s as t};
2
+ //# sourceMappingURL=hls-js-CiE4wOrG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hls-js-6lW7L4th.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECA5C,EAAW,cAJ0B,CAAS,QAClB,KAAA,QAAA,YAC5B,CAE0B"}
1
+ {"version":3,"file":"hls-js-CiE4wOrG.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECJ/B,EAAb,cAAqC,CAAS,QAClB,KAAA,QAAA,YAC5B,EAEA,EAAW,CAAe"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./custom-media-element-8pSkwn42.js";import{i as t}from"./context-C2rsoDxk.js";import{t as n}from"./media-attach-mixin-Igi3-1UG.js";import{t as r}from"./media-DU3Xf5XR.js";import{t as i}from"./mixin-BXfRWfYu.js";const a=i(n(e(`video`,r)));var o=class extends a{},s=class extends o{static{this.tagName=`mux-video`}};t(s);export{s as t};
2
+ //# sourceMappingURL=hls-js-DBKRCbQm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hls-js-DCQzjzB5.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECA5C,EAAW,cAJ0B,CAAS,QAClB,KAAA,QAAA,YAC5B,CAE0B"}
1
+ {"version":3,"file":"hls-js-DBKRCbQm.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECJ/B,EAAb,cAAqC,CAAS,QAClB,KAAA,QAAA,YAC5B,EAEA,EAAW,CAAe"}
@@ -1,7 +1,7 @@
1
1
  import { t as CustomMediaElement } from "./custom-media-element-D2JoODKd.js";
2
2
  import { i as safeDefine } from "./context-OhQY847V.js";
3
3
  import { t as MediaAttachMixin } from "./media-attach-mixin-uThv5NL_.js";
4
- import { t as MuxMedia } from "./media-B_gQXwri.js";
4
+ import { t as MuxMedia } from "./media-BNuI0Im7.js";
5
5
  import { t as MuxVideoMixin } from "./mixin-NrVEcofN.js";
6
6
 
7
7
  //#region src/media/mux-video/hls-js.ts
@@ -18,4 +18,5 @@ var MuxVideoElement = class extends MuxVideo {
18
18
  safeDefine(MuxVideoElement);
19
19
 
20
20
  //#endregion
21
- //# sourceMappingURL=hls-js-g1zdcyvE.js.map
21
+ export { MuxVideoElement as t };
22
+ //# sourceMappingURL=hls-js-DX2NGCAr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hls-js-g1zdcyvE.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
1
+ {"version":3,"file":"hls-js-DX2NGCAr.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
@@ -1,7 +1,7 @@
1
1
  import { t as CustomMediaElement } from "./custom-media-element-D2JoODKd.js";
2
2
  import { i as safeDefine } from "./context-OhQY847V.js";
3
3
  import { t as MediaAttachMixin } from "./media-attach-mixin-uThv5NL_.js";
4
- import { t as MuxMedia } from "./media-B_gQXwri.js";
4
+ import { t as MuxMedia } from "./media-BNuI0Im7.js";
5
5
  import { t as MuxAudioMixin } from "./mixin-Co51mtM6.js";
6
6
 
7
7
  //#region src/media/mux-audio/hls-js.ts
@@ -18,4 +18,5 @@ var MuxAudioElement = class extends MuxAudio {
18
18
  safeDefine(MuxAudioElement);
19
19
 
20
20
  //#endregion
21
- //# sourceMappingURL=hls-js-Cwj8UBx9.js.map
21
+ export { MuxAudioElement as t };
22
+ //# sourceMappingURL=hls-js-JeH8yvsP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hls-js-Cwj8UBx9.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
1
+ {"version":3,"file":"hls-js-JeH8yvsP.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
@@ -0,0 +1,2 @@
1
+ function e(t,n={}){let{prefix:r=``}=n,i={};for(let[n,a]of Object.entries(t)){let t=r?`${r}.${n}`:n;typeof a==`object`&&a&&!Array.isArray(a)?Object.assign(i,e(a,{prefix:t})):i[t]=a}return i}function t(t,n={}){return e(t,n)}const n=`en`,r=Symbol.for(`@videojs/i18n-registry`);function i(){let e=globalThis,t=e[r];if(t)return t;let n={layers:new Map,subscribers:new Set};return e[r]=n,n}function a(){for(let e of i().subscribers)e()}function o(e){return e.trim().replaceAll(`_`,`-`).toLowerCase()}function s(e){let t=e.indexOf(`-x-`),n=(t===-1?e:e.slice(0,t)).indexOf(`-u-`);return n===-1?e:e.slice(0,n)+(t===-1?``:e.slice(t))}function c(e){if(e[0]!==`zh`)return;let t=e.find(e=>e===`hant`||e===`hans`);return t===`hant`?`zh-tw`:t===`hans`?`zh-cn`:void 0}function l(e){return s(o(e))}function u(e){let t=l(e);if(!t)return[`en`];let n=t.split(`-`).filter(Boolean),r=[];for(let e=n.length;e>=1;e--)r.push(n.slice(0,e).join(`-`));let i=c(n),a=r.indexOf(`zh`);i&&a!==-1&&r.splice(a,0,i);let o=[],s=new Set;for(let e of r)s.has(e)||(s.add(e),o.push(e));return s.has(`en`)||o.push(`en`),o}function d(e){let{layers:t}=i(),n={};for(let r=e.length-1;r>=0;r--){let i=e[r],a=t.get(i);a&&Object.assign(n,a)}return n}function f(e,n){let{layers:r}=i(),o=l(e),s=r.get(o)??{};r.set(o,{...s,...t(n)}),a()}function p(e){return d(u(e))}function m(e){let{subscribers:t}=i();return t.add(e),()=>{t.delete(e)}}function h(e){return i().layers.has(l(e))}export{m as a,t as c,h as i,l as n,f as o,p as r,n as s,u as t};
2
+ //# sourceMappingURL=i18n-CE4KxKuj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-CE4KxKuj.js","names":[],"sources":["../../utils/dist/object/flatten.js","../../core/dist/default/core/i18n/utils/flatten.js","../../utils/dist/i18n.js","../../core/dist/default/core/i18n/registry.js"],"sourcesContent":["//#region src/object/flatten.ts\nfunction flatten(object, options = {}) {\n\tconst { prefix = \"\" } = options;\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst fullKey = prefix ? `${prefix}.${key}` : key;\n\t\tif (value !== null && typeof value === \"object\" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));\n\t\telse result[fullKey] = value;\n\t}\n\treturn result;\n}\n//#endregion\nexport { flatten };\n\n//# sourceMappingURL=flatten.js.map","import { flatten } from \"@videojs/utils/object\";\n//#region src/core/i18n/utils/flatten.ts\nfunction flattenTranslations(locale, options = {}) {\n\treturn flatten(locale, options);\n}\n//#endregion\nexport { flattenTranslations };\n\n//# sourceMappingURL=flatten.js.map","//#region src/i18n/index.ts\n/** Default locale used when no player or ambient locale is available. */\nconst DEFAULT_LOCALE = \"en\";\n//#endregion\nexport { DEFAULT_LOCALE };\n\n//# sourceMappingURL=i18n.js.map","import { flattenTranslations } from \"./utils/flatten.js\";\nimport { DEFAULT_LOCALE } from \"@videojs/utils/i18n\";\n//#region src/core/i18n/registry.ts\n/**\n* Well-known key for the shared registry. Its name and value shape are a cross-version contract:\n* every copy of this module in a realm must agree on them, so change the key when the shape changes.\n*/\nconst I18N_REGISTRY_KEY = Symbol.for(\"@videojs/i18n-registry\");\n/**\n* The registry is realm-global rather than module-global so duplicate copies of this module\n* converge on one set of translations.\n*\n* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an\n* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module\n* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the\n* player reading from another, and the locale silently falls back to English.\n*/\nfunction getRegistry() {\n\tconst host = globalThis;\n\tconst existing = host[I18N_REGISTRY_KEY];\n\tif (existing) return existing;\n\tconst registry = {\n\t\tlayers: /* @__PURE__ */ new Map(),\n\t\tsubscribers: /* @__PURE__ */ new Set()\n\t};\n\thost[I18N_REGISTRY_KEY] = registry;\n\treturn registry;\n}\nfunction notify() {\n\tfor (const cb of getRegistry().subscribers) cb();\n}\nfunction normalizeLocaleTag(tag) {\n\treturn tag.trim().replaceAll(\"_\", \"-\").toLowerCase();\n}\n/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */\nfunction stripUnicodeExtensions(tag) {\n\tconst xIdx = tag.indexOf(\"-x-\");\n\tconst uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf(\"-u-\");\n\tif (uIdx === -1) return tag;\n\treturn tag.slice(0, uIdx) + (xIdx === -1 ? \"\" : tag.slice(xIdx));\n}\nfunction chineseFallback(segments) {\n\tif (segments[0] !== \"zh\") return;\n\tconst script = segments.find((segment) => segment === \"hant\" || segment === \"hans\");\n\treturn script === \"hant\" ? \"zh-tw\" : script === \"hans\" ? \"zh-cn\" : void 0;\n}\n/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */\nfunction getCanonicalLocaleKey(locale) {\n\treturn stripUnicodeExtensions(normalizeLocaleTag(locale));\n}\n/**\n* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.\n*\n* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`\n*/\nfunction findLocaleKeys(locale) {\n\tconst base = getCanonicalLocaleKey(locale);\n\tif (!base) return [DEFAULT_LOCALE];\n\tconst segments = base.split(\"-\").filter(Boolean);\n\tconst chain = [];\n\tfor (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join(\"-\"));\n\tconst zhFallback = chineseFallback(segments);\n\tconst zhIndex = chain.indexOf(\"zh\");\n\tif (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const tag of chain) if (!seen.has(tag)) {\n\t\tseen.add(tag);\n\t\tout.push(tag);\n\t}\n\tif (!seen.has(DEFAULT_LOCALE)) out.push(DEFAULT_LOCALE);\n\treturn out;\n}\nfunction mergeI18nTranslations(chain) {\n\tconst { layers } = getRegistry();\n\tconst merged = {};\n\tfor (let i = chain.length - 1; i >= 0; i--) {\n\t\tconst tag = chain[i];\n\t\tconst layer = layers.get(tag);\n\t\tif (layer) Object.assign(merged, layer);\n\t}\n\treturn merged;\n}\n/**\n* Register or merge translation strings for a BCP 47 locale tag.\n*\n* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).\n* @param translations - Partial nested locale values; merges with any existing layer for the tag.\n* @public\n*/\nfunction registerI18n(locale, translations) {\n\tconst { layers } = getRegistry();\n\tconst tag = getCanonicalLocaleKey(locale);\n\tconst existing = layers.get(tag) ?? {};\n\tlayers.set(tag, {\n\t\t...existing,\n\t\t...flattenTranslations(translations)\n\t});\n\tnotify();\n}\n/**\n* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.\n*\n* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).\n* @public\n*/\nfunction getI18nTranslations(locale) {\n\treturn mergeI18nTranslations(findLocaleKeys(locale));\n}\n/**\n* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).\n*\n* @param callback - Invoked when any locale layer changes.\n* @public\n*/\nfunction onI18nRegistryChange(callback) {\n\tconst { subscribers } = getRegistry();\n\tsubscribers.add(callback);\n\treturn () => {\n\t\tsubscribers.delete(callback);\n\t};\n}\n/**\n* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).\n*\n* @param locale - BCP 47 tag to test.\n* @public\n*/\nfunction hasRegisteredLocale(locale) {\n\treturn getRegistry().layers.has(getCanonicalLocaleKey(locale));\n}\n/** Clears registered locale overlays (test isolation). */\nfunction resetI18nRegistry() {\n\tconst { layers, subscribers } = getRegistry();\n\tlayers.clear();\n\tsubscribers.clear();\n}\n//#endregion\nexport { findLocaleKeys, getCanonicalLocaleKey, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n, resetI18nRegistry };\n\n//# sourceMappingURL=registry.js.map"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{i as e}from"./context-C2rsoDxk.js";import{n as t,t as n}from"./text-element-BoY6AhMn.js";e(t),e(n);
2
+ //# sourceMappingURL=i18n-CpBDXf6M.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-DfKGl5Rh.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":"gGAIA,EAAW,CAAmB,EAC9B,EAAW,CAAW"}
1
+ {"version":3,"file":"i18n-CpBDXf6M.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":"gGAIA,EAAW,CAAmB,EAC9B,EAAW,CAAW"}
@@ -1,9 +1,9 @@
1
1
  import { i as safeDefine } from "./context-OhQY847V.js";
2
- import { n as I18nProviderElement, t as TextElement } from "./text-element-DTB9_2HX.js";
2
+ import { n as I18nProviderElement, t as TextElement } from "./text-element-cg6l21cd.js";
3
3
 
4
4
  //#region src/define/i18n.ts
5
5
  safeDefine(I18nProviderElement);
6
6
  safeDefine(TextElement);
7
7
 
8
8
  //#endregion
9
- //# sourceMappingURL=i18n-Mtlmj1AA.js.map
9
+ //# sourceMappingURL=i18n-D0nhPa0m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-Mtlmj1AA.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":";;;;AAIA,WAAW,mBAAmB;AAC9B,WAAW,WAAW"}
1
+ {"version":3,"file":"i18n-D0nhPa0m.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":";;;;AAIA,WAAW,mBAAmB;AAC9B,WAAW,WAAW"}
@@ -0,0 +1,157 @@
1
+ //#region ../utils/dist/object/flatten.js
2
+ function flatten(object, options = {}) {
3
+ const { prefix = "" } = options;
4
+ const result = {};
5
+ for (const [key, value] of Object.entries(object)) {
6
+ const fullKey = prefix ? `${prefix}.${key}` : key;
7
+ if (value !== null && typeof value === "object" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));
8
+ else result[fullKey] = value;
9
+ }
10
+ return result;
11
+ }
12
+
13
+ //#endregion
14
+ //#region ../core/dist/dev/core/i18n/utils/flatten.js
15
+ function flattenTranslations(locale, options = {}) {
16
+ return flatten(locale, options);
17
+ }
18
+
19
+ //#endregion
20
+ //#region ../utils/dist/i18n.js
21
+ /** Default locale used when no player or ambient locale is available. */
22
+ const DEFAULT_LOCALE = "en";
23
+
24
+ //#endregion
25
+ //#region ../core/dist/dev/core/i18n/registry.js
26
+ /**
27
+ * Well-known key for the shared registry. Its name and value shape are a cross-version contract:
28
+ * every copy of this module in a realm must agree on them, so change the key when the shape changes.
29
+ */
30
+ const I18N_REGISTRY_KEY = Symbol.for("@videojs/i18n-registry");
31
+ /**
32
+ * The registry is realm-global rather than module-global so duplicate copies of this module
33
+ * converge on one set of translations.
34
+ *
35
+ * Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an
36
+ * unpinned URL for the same file, and two bundlers' output on one page all yield distinct module
37
+ * instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the
38
+ * player reading from another, and the locale silently falls back to English.
39
+ */
40
+ function getRegistry() {
41
+ const host = globalThis;
42
+ const existing = host[I18N_REGISTRY_KEY];
43
+ if (existing) return existing;
44
+ const registry = {
45
+ layers: /* @__PURE__ */ new Map(),
46
+ subscribers: /* @__PURE__ */ new Set()
47
+ };
48
+ host[I18N_REGISTRY_KEY] = registry;
49
+ return registry;
50
+ }
51
+ function notify() {
52
+ for (const cb of getRegistry().subscribers) cb();
53
+ }
54
+ function normalizeLocaleTag(tag) {
55
+ return tag.trim().replaceAll("_", "-").toLowerCase();
56
+ }
57
+ /** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */
58
+ function stripUnicodeExtensions(tag) {
59
+ const xIdx = tag.indexOf("-x-");
60
+ const uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf("-u-");
61
+ if (uIdx === -1) return tag;
62
+ return tag.slice(0, uIdx) + (xIdx === -1 ? "" : tag.slice(xIdx));
63
+ }
64
+ function chineseFallback(segments) {
65
+ if (segments[0] !== "zh") return;
66
+ const script = segments.find((segment) => segment === "hant" || segment === "hans");
67
+ return script === "hant" ? "zh-tw" : script === "hans" ? "zh-cn" : void 0;
68
+ }
69
+ /** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */
70
+ function getCanonicalLocaleKey(locale) {
71
+ return stripUnicodeExtensions(normalizeLocaleTag(locale));
72
+ }
73
+ /**
74
+ * Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.
75
+ *
76
+ * @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`
77
+ */
78
+ function findLocaleKeys(locale) {
79
+ const base = getCanonicalLocaleKey(locale);
80
+ if (!base) return ["en"];
81
+ const segments = base.split("-").filter(Boolean);
82
+ const chain = [];
83
+ for (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join("-"));
84
+ const zhFallback = chineseFallback(segments);
85
+ const zhIndex = chain.indexOf("zh");
86
+ if (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);
87
+ const out = [];
88
+ const seen = /* @__PURE__ */ new Set();
89
+ for (const tag of chain) if (!seen.has(tag)) {
90
+ seen.add(tag);
91
+ out.push(tag);
92
+ }
93
+ if (!seen.has("en")) out.push("en");
94
+ return out;
95
+ }
96
+ function mergeI18nTranslations(chain) {
97
+ const { layers } = getRegistry();
98
+ const merged = {};
99
+ for (let i = chain.length - 1; i >= 0; i--) {
100
+ const tag = chain[i];
101
+ const layer = layers.get(tag);
102
+ if (layer) Object.assign(merged, layer);
103
+ }
104
+ return merged;
105
+ }
106
+ /**
107
+ * Register or merge translation strings for a BCP 47 locale tag.
108
+ *
109
+ * @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).
110
+ * @param translations - Partial nested locale values; merges with any existing layer for the tag.
111
+ * @public
112
+ */
113
+ function registerI18n(locale, translations) {
114
+ const { layers } = getRegistry();
115
+ const tag = getCanonicalLocaleKey(locale);
116
+ const existing = layers.get(tag) ?? {};
117
+ layers.set(tag, {
118
+ ...existing,
119
+ ...flattenTranslations(translations)
120
+ });
121
+ notify();
122
+ }
123
+ /**
124
+ * Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.
125
+ *
126
+ * @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).
127
+ * @public
128
+ */
129
+ function getI18nTranslations(locale) {
130
+ return mergeI18nTranslations(findLocaleKeys(locale));
131
+ }
132
+ /**
133
+ * Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).
134
+ *
135
+ * @param callback - Invoked when any locale layer changes.
136
+ * @public
137
+ */
138
+ function onI18nRegistryChange(callback) {
139
+ const { subscribers } = getRegistry();
140
+ subscribers.add(callback);
141
+ return () => {
142
+ subscribers.delete(callback);
143
+ };
144
+ }
145
+ /**
146
+ * Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).
147
+ *
148
+ * @param locale - BCP 47 tag to test.
149
+ * @public
150
+ */
151
+ function hasRegisteredLocale(locale) {
152
+ return getRegistry().layers.has(getCanonicalLocaleKey(locale));
153
+ }
154
+
155
+ //#endregion
156
+ export { onI18nRegistryChange as a, flattenTranslations as c, hasRegisteredLocale as i, getCanonicalLocaleKey as n, registerI18n as o, getI18nTranslations as r, DEFAULT_LOCALE as s, findLocaleKeys as t };
157
+ //# sourceMappingURL=i18n-DyF_NfCk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n-DyF_NfCk.js","names":[],"sources":["../../utils/dist/object/flatten.js","../../core/dist/dev/core/i18n/utils/flatten.js","../../utils/dist/i18n.js","../../core/dist/dev/core/i18n/registry.js"],"sourcesContent":["//#region src/object/flatten.ts\nfunction flatten(object, options = {}) {\n\tconst { prefix = \"\" } = options;\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst fullKey = prefix ? `${prefix}.${key}` : key;\n\t\tif (value !== null && typeof value === \"object\" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));\n\t\telse result[fullKey] = value;\n\t}\n\treturn result;\n}\n//#endregion\nexport { flatten };\n\n//# sourceMappingURL=flatten.js.map","import { flatten } from \"@videojs/utils/object\";\n//#region src/core/i18n/utils/flatten.ts\nfunction flattenTranslations(locale, options = {}) {\n\treturn flatten(locale, options);\n}\n//#endregion\nexport { flattenTranslations };\n\n//# sourceMappingURL=flatten.js.map","//#region src/i18n/index.ts\n/** Default locale used when no player or ambient locale is available. */\nconst DEFAULT_LOCALE = \"en\";\n//#endregion\nexport { DEFAULT_LOCALE };\n\n//# sourceMappingURL=i18n.js.map","import { flattenTranslations } from \"./utils/flatten.js\";\nimport { DEFAULT_LOCALE } from \"@videojs/utils/i18n\";\n//#region src/core/i18n/registry.ts\n/**\n* Well-known key for the shared registry. Its name and value shape are a cross-version contract:\n* every copy of this module in a realm must agree on them, so change the key when the shape changes.\n*/\nconst I18N_REGISTRY_KEY = Symbol.for(\"@videojs/i18n-registry\");\n/**\n* The registry is realm-global rather than module-global so duplicate copies of this module\n* converge on one set of translations.\n*\n* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an\n* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module\n* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the\n* player reading from another, and the locale silently falls back to English.\n*/\nfunction getRegistry() {\n\tconst host = globalThis;\n\tconst existing = host[I18N_REGISTRY_KEY];\n\tif (existing) return existing;\n\tconst registry = {\n\t\tlayers: /* @__PURE__ */ new Map(),\n\t\tsubscribers: /* @__PURE__ */ new Set()\n\t};\n\thost[I18N_REGISTRY_KEY] = registry;\n\treturn registry;\n}\nfunction notify() {\n\tfor (const cb of getRegistry().subscribers) cb();\n}\nfunction normalizeLocaleTag(tag) {\n\treturn tag.trim().replaceAll(\"_\", \"-\").toLowerCase();\n}\n/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */\nfunction stripUnicodeExtensions(tag) {\n\tconst xIdx = tag.indexOf(\"-x-\");\n\tconst uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf(\"-u-\");\n\tif (uIdx === -1) return tag;\n\treturn tag.slice(0, uIdx) + (xIdx === -1 ? \"\" : tag.slice(xIdx));\n}\nfunction chineseFallback(segments) {\n\tif (segments[0] !== \"zh\") return;\n\tconst script = segments.find((segment) => segment === \"hant\" || segment === \"hans\");\n\treturn script === \"hant\" ? \"zh-tw\" : script === \"hans\" ? \"zh-cn\" : void 0;\n}\n/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */\nfunction getCanonicalLocaleKey(locale) {\n\treturn stripUnicodeExtensions(normalizeLocaleTag(locale));\n}\n/**\n* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.\n*\n* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`\n*/\nfunction findLocaleKeys(locale) {\n\tconst base = getCanonicalLocaleKey(locale);\n\tif (!base) return [DEFAULT_LOCALE];\n\tconst segments = base.split(\"-\").filter(Boolean);\n\tconst chain = [];\n\tfor (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join(\"-\"));\n\tconst zhFallback = chineseFallback(segments);\n\tconst zhIndex = chain.indexOf(\"zh\");\n\tif (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const tag of chain) if (!seen.has(tag)) {\n\t\tseen.add(tag);\n\t\tout.push(tag);\n\t}\n\tif (!seen.has(DEFAULT_LOCALE)) out.push(DEFAULT_LOCALE);\n\treturn out;\n}\nfunction mergeI18nTranslations(chain) {\n\tconst { layers } = getRegistry();\n\tconst merged = {};\n\tfor (let i = chain.length - 1; i >= 0; i--) {\n\t\tconst tag = chain[i];\n\t\tconst layer = layers.get(tag);\n\t\tif (layer) Object.assign(merged, layer);\n\t}\n\treturn merged;\n}\n/**\n* Register or merge translation strings for a BCP 47 locale tag.\n*\n* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).\n* @param translations - Partial nested locale values; merges with any existing layer for the tag.\n* @public\n*/\nfunction registerI18n(locale, translations) {\n\tconst { layers } = getRegistry();\n\tconst tag = getCanonicalLocaleKey(locale);\n\tconst existing = layers.get(tag) ?? {};\n\tlayers.set(tag, {\n\t\t...existing,\n\t\t...flattenTranslations(translations)\n\t});\n\tnotify();\n}\n/**\n* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.\n*\n* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).\n* @public\n*/\nfunction getI18nTranslations(locale) {\n\treturn mergeI18nTranslations(findLocaleKeys(locale));\n}\n/**\n* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).\n*\n* @param callback - Invoked when any locale layer changes.\n* @public\n*/\nfunction onI18nRegistryChange(callback) {\n\tconst { subscribers } = getRegistry();\n\tsubscribers.add(callback);\n\treturn () => {\n\t\tsubscribers.delete(callback);\n\t};\n}\n/**\n* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).\n*\n* @param locale - BCP 47 tag to test.\n* @public\n*/\nfunction hasRegisteredLocale(locale) {\n\treturn getRegistry().layers.has(getCanonicalLocaleKey(locale));\n}\n/** Clears registered locale overlays (test isolation). */\nfunction resetI18nRegistry() {\n\tconst { layers, subscribers } = getRegistry();\n\tlayers.clear();\n\tsubscribers.clear();\n}\n//#endregion\nexport { findLocaleKeys, getCanonicalLocaleKey, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n, resetI18nRegistry };\n\n//# sourceMappingURL=registry.js.map"],"mappings":"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"}
package/cdn/i18n.dev.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { s as isObject } from "./predicate-faYxAB6Z.js";
2
- import { i as DEFAULT_LOCALE, n as interpolate, r as resolveText, t as translateText } from "./translate-text-DP0CzUCC.js";
2
+ import { a as onI18nRegistryChange, c as flattenTranslations, i as hasRegisteredLocale, n as getCanonicalLocaleKey, o as registerI18n, r as getI18nTranslations, s as DEFAULT_LOCALE, t as findLocaleKeys } from "./i18n-DyF_NfCk.js";
3
+ import { n as interpolate, r as resolveText, t as translateText } from "./translate-text-BWvoW5-r.js";
3
4
 
4
5
  //#region ../core/dist/dev/i18n/locales/en.js
5
6
  var en_default = {
@@ -103,156 +104,6 @@ var en_default = {
103
104
  }
104
105
  };
105
106
 
106
- //#endregion
107
- //#region ../utils/dist/object/flatten.js
108
- function flatten(object, options = {}) {
109
- const { prefix = "" } = options;
110
- const result = {};
111
- for (const [key, value] of Object.entries(object)) {
112
- const fullKey = prefix ? `${prefix}.${key}` : key;
113
- if (value !== null && typeof value === "object" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));
114
- else result[fullKey] = value;
115
- }
116
- return result;
117
- }
118
-
119
- //#endregion
120
- //#region ../core/dist/dev/core/i18n/utils/flatten.js
121
- function flattenTranslations(locale, options = {}) {
122
- return flatten(locale, options);
123
- }
124
-
125
- //#endregion
126
- //#region ../core/dist/dev/core/i18n/registry.js
127
- /**
128
- * Well-known key for the shared registry. Its name and value shape are a cross-version contract:
129
- * every copy of this module in a realm must agree on them, so change the key when the shape changes.
130
- */
131
- const I18N_REGISTRY_KEY = Symbol.for("@videojs/i18n-registry");
132
- /**
133
- * The registry is realm-global rather than module-global so duplicate copies of this module
134
- * converge on one set of translations.
135
- *
136
- * Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an
137
- * unpinned URL for the same file, and two bundlers' output on one page all yield distinct module
138
- * instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the
139
- * player reading from another, and the locale silently falls back to English.
140
- */
141
- function getRegistry() {
142
- const host = globalThis;
143
- const existing = host[I18N_REGISTRY_KEY];
144
- if (existing) return existing;
145
- const registry = {
146
- layers: /* @__PURE__ */ new Map(),
147
- subscribers: /* @__PURE__ */ new Set()
148
- };
149
- host[I18N_REGISTRY_KEY] = registry;
150
- return registry;
151
- }
152
- function notify() {
153
- for (const cb of getRegistry().subscribers) cb();
154
- }
155
- function normalizeLocaleTag(tag) {
156
- return tag.trim().replaceAll("_", "-").toLowerCase();
157
- }
158
- /** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */
159
- function stripUnicodeExtensions(tag) {
160
- const xIdx = tag.indexOf("-x-");
161
- const uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf("-u-");
162
- if (uIdx === -1) return tag;
163
- return tag.slice(0, uIdx) + (xIdx === -1 ? "" : tag.slice(xIdx));
164
- }
165
- function chineseFallback(segments) {
166
- if (segments[0] !== "zh") return;
167
- const script = segments.find((segment) => segment === "hant" || segment === "hans");
168
- return script === "hant" ? "zh-tw" : script === "hans" ? "zh-cn" : void 0;
169
- }
170
- /** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */
171
- function getCanonicalLocaleKey(locale) {
172
- return stripUnicodeExtensions(normalizeLocaleTag(locale));
173
- }
174
- /**
175
- * Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.
176
- *
177
- * @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`
178
- */
179
- function findLocaleKeys(locale) {
180
- const base = getCanonicalLocaleKey(locale);
181
- if (!base) return ["en"];
182
- const segments = base.split("-").filter(Boolean);
183
- const chain = [];
184
- for (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join("-"));
185
- const zhFallback = chineseFallback(segments);
186
- const zhIndex = chain.indexOf("zh");
187
- if (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);
188
- const out = [];
189
- const seen = /* @__PURE__ */ new Set();
190
- for (const tag of chain) if (!seen.has(tag)) {
191
- seen.add(tag);
192
- out.push(tag);
193
- }
194
- if (!seen.has("en")) out.push("en");
195
- return out;
196
- }
197
- function mergeI18nTranslations(chain) {
198
- const { layers } = getRegistry();
199
- const merged = {};
200
- for (let i = chain.length - 1; i >= 0; i--) {
201
- const tag = chain[i];
202
- const layer = layers.get(tag);
203
- if (layer) Object.assign(merged, layer);
204
- }
205
- return merged;
206
- }
207
- /**
208
- * Register or merge translation strings for a BCP 47 locale tag.
209
- *
210
- * @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).
211
- * @param translations - Partial nested locale values; merges with any existing layer for the tag.
212
- * @public
213
- */
214
- function registerI18n(locale, translations) {
215
- const { layers } = getRegistry();
216
- const tag = getCanonicalLocaleKey(locale);
217
- const existing = layers.get(tag) ?? {};
218
- layers.set(tag, {
219
- ...existing,
220
- ...flattenTranslations(translations)
221
- });
222
- notify();
223
- }
224
- /**
225
- * Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.
226
- *
227
- * @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).
228
- * @public
229
- */
230
- function getI18nTranslations(locale) {
231
- return mergeI18nTranslations(findLocaleKeys(locale));
232
- }
233
- /**
234
- * Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).
235
- *
236
- * @param callback - Invoked when any locale layer changes.
237
- * @public
238
- */
239
- function onI18nRegistryChange(callback) {
240
- const { subscribers } = getRegistry();
241
- subscribers.add(callback);
242
- return () => {
243
- subscribers.delete(callback);
244
- };
245
- }
246
- /**
247
- * Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).
248
- *
249
- * @param locale - BCP 47 tag to test.
250
- * @public
251
- */
252
- function hasRegisteredLocale(locale) {
253
- return getRegistry().layers.has(getCanonicalLocaleKey(locale));
254
- }
255
-
256
107
  //#endregion
257
108
  //#region ../core/dist/dev/core/i18n/browser-translation.js
258
109
  const NAMED_PLACEHOLDER = /\{([^{}]+)\}/g;
@@ -357,7 +208,7 @@ const loaders = {
357
208
  az: () => import("./az-BXA58gAV.js").then((n) => n.n),
358
209
  bs: () => import("./bs-BGd6Lc0X.js").then((n) => n.n),
359
210
  bg: () => import("./bg-CNMY77ir.js").then((n) => n.n),
360
- bn: () => import("./bn-DdelKD_n.js").then((n) => n.n),
211
+ bn: () => import("./bn-CcLIScl6.js").then((n) => n.n),
361
212
  ca: () => import("./ca-tFUfQ2mI.js").then((n) => n.n),
362
213
  cs: () => import("./cs-B9lsmY_k.js").then((n) => n.n),
363
214
  cy: () => import("./cy-DW6qAdUj.js").then((n) => n.n),