@mattebox/player 0.1.0 → 0.3.0

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 (420) hide show
  1. package/README.md +4 -3
  2. package/dist/cdn/mattebox-player.min.js +222 -198
  3. package/dist/compose.d.ts +5 -0
  4. package/dist/compose.d.ts.map +1 -0
  5. package/dist/compose.js +31 -0
  6. package/dist/compose.js.map +1 -0
  7. package/dist/controls/chapters.d.ts +29 -0
  8. package/dist/controls/chapters.d.ts.map +1 -0
  9. package/dist/controls/chapters.js +81 -0
  10. package/dist/controls/chapters.js.map +1 -0
  11. package/dist/controls/cues.d.ts +8 -3
  12. package/dist/controls/cues.d.ts.map +1 -1
  13. package/dist/controls/cues.js +44 -10
  14. package/dist/controls/cues.js.map +1 -1
  15. package/dist/controls/fullscreen.d.ts +9 -9
  16. package/dist/controls/fullscreen.d.ts.map +1 -1
  17. package/dist/controls/fullscreen.js +17 -21
  18. package/dist/controls/fullscreen.js.map +1 -1
  19. package/dist/controls/icons.d.ts +1 -3
  20. package/dist/controls/icons.d.ts.map +1 -1
  21. package/dist/controls/icons.js +3 -6
  22. package/dist/controls/icons.js.map +1 -1
  23. package/dist/controls/menu.d.ts +14 -11
  24. package/dist/controls/menu.d.ts.map +1 -1
  25. package/dist/controls/menu.js +39 -34
  26. package/dist/controls/menu.js.map +1 -1
  27. package/dist/controls/session.d.ts +27 -0
  28. package/dist/controls/session.d.ts.map +1 -0
  29. package/dist/controls/session.js +36 -0
  30. package/dist/controls/session.js.map +1 -0
  31. package/dist/controls/slider.d.ts +6 -6
  32. package/dist/controls/slider.d.ts.map +1 -1
  33. package/dist/controls/slider.js +18 -13
  34. package/dist/controls/slider.js.map +1 -1
  35. package/dist/dom.d.ts +4 -10
  36. package/dist/dom.d.ts.map +1 -1
  37. package/dist/dom.js +4 -24
  38. package/dist/dom.js.map +1 -1
  39. package/dist/element-entry.d.ts +4 -0
  40. package/dist/element-entry.d.ts.map +1 -0
  41. package/dist/element-entry.js +9 -0
  42. package/dist/element-entry.js.map +1 -0
  43. package/dist/element.d.ts +54 -14
  44. package/dist/element.d.ts.map +1 -1
  45. package/dist/element.js +154 -73
  46. package/dist/element.js.map +1 -1
  47. package/dist/elements/audio-menu.d.ts +24 -0
  48. package/dist/elements/audio-menu.d.ts.map +1 -0
  49. package/dist/elements/audio-menu.js +70 -0
  50. package/dist/elements/audio-menu.js.map +1 -0
  51. package/dist/elements/chapters-menu.d.ts +12 -0
  52. package/dist/elements/chapters-menu.d.ts.map +1 -0
  53. package/dist/elements/chapters-menu.js +67 -0
  54. package/dist/elements/chapters-menu.js.map +1 -0
  55. package/dist/elements/component.d.ts +45 -0
  56. package/dist/elements/component.d.ts.map +1 -0
  57. package/dist/elements/component.js +90 -0
  58. package/dist/elements/component.js.map +1 -0
  59. package/dist/elements/control-bar.d.ts +75 -0
  60. package/dist/elements/control-bar.d.ts.map +1 -0
  61. package/dist/elements/control-bar.js +339 -0
  62. package/dist/elements/control-bar.js.map +1 -0
  63. package/dist/elements/current-time.d.ts +5 -0
  64. package/dist/elements/current-time.d.ts.map +1 -0
  65. package/dist/elements/current-time.js +27 -0
  66. package/dist/elements/current-time.js.map +1 -0
  67. package/dist/elements/drm-badge.d.ts +29 -0
  68. package/dist/elements/drm-badge.d.ts.map +1 -0
  69. package/dist/elements/drm-badge.js +145 -0
  70. package/dist/elements/drm-badge.js.map +1 -0
  71. package/dist/elements/duration.d.ts +6 -0
  72. package/dist/elements/duration.d.ts.map +1 -0
  73. package/dist/elements/duration.js +23 -0
  74. package/dist/elements/duration.js.map +1 -0
  75. package/dist/elements/error-screen.d.ts +17 -0
  76. package/dist/elements/error-screen.d.ts.map +1 -0
  77. package/dist/elements/error-screen.js +103 -0
  78. package/dist/elements/error-screen.js.map +1 -0
  79. package/dist/elements/fullscreen-button.d.ts +19 -0
  80. package/dist/elements/fullscreen-button.d.ts.map +1 -0
  81. package/dist/elements/fullscreen-button.js +55 -0
  82. package/dist/elements/fullscreen-button.js.map +1 -0
  83. package/dist/elements/live-button.d.ts +12 -0
  84. package/dist/elements/live-button.d.ts.map +1 -0
  85. package/dist/elements/live-button.js +96 -0
  86. package/dist/elements/live-button.js.map +1 -0
  87. package/dist/elements/menu-element.d.ts +22 -0
  88. package/dist/elements/menu-element.d.ts.map +1 -0
  89. package/dist/elements/menu-element.js +31 -0
  90. package/dist/elements/menu-element.js.map +1 -0
  91. package/dist/elements/mute-button.d.ts +12 -0
  92. package/dist/elements/mute-button.d.ts.map +1 -0
  93. package/dist/elements/mute-button.js +61 -0
  94. package/dist/elements/mute-button.js.map +1 -0
  95. package/dist/elements/panels.d.ts +15 -0
  96. package/dist/elements/panels.d.ts.map +1 -0
  97. package/dist/elements/panels.js +55 -0
  98. package/dist/elements/panels.js.map +1 -0
  99. package/dist/elements/pip-button.d.ts +13 -0
  100. package/dist/elements/pip-button.d.ts.map +1 -0
  101. package/dist/elements/pip-button.js +56 -0
  102. package/dist/elements/pip-button.js.map +1 -0
  103. package/dist/elements/play-button.d.ts +12 -0
  104. package/dist/elements/play-button.d.ts.map +1 -0
  105. package/dist/elements/play-button.js +60 -0
  106. package/dist/elements/play-button.js.map +1 -0
  107. package/dist/elements/quality-menu.d.ts +11 -0
  108. package/dist/elements/quality-menu.d.ts.map +1 -0
  109. package/dist/elements/quality-menu.js +72 -0
  110. package/dist/elements/quality-menu.js.map +1 -0
  111. package/dist/elements/remaining-time.d.ts +6 -0
  112. package/dist/elements/remaining-time.d.ts.map +1 -0
  113. package/dist/elements/remaining-time.js +26 -0
  114. package/dist/elements/remaining-time.js.map +1 -0
  115. package/dist/elements/seek-bar.d.ts +83 -0
  116. package/dist/elements/seek-bar.d.ts.map +1 -0
  117. package/dist/elements/seek-bar.js +352 -0
  118. package/dist/elements/seek-bar.js.map +1 -0
  119. package/dist/elements/shared.d.ts +27 -0
  120. package/dist/elements/shared.d.ts.map +1 -0
  121. package/dist/elements/shared.js +155 -0
  122. package/dist/elements/shared.js.map +1 -0
  123. package/dist/elements/skip-button.d.ts +14 -0
  124. package/dist/elements/skip-button.d.ts.map +1 -0
  125. package/dist/elements/skip-button.js +60 -0
  126. package/dist/elements/skip-button.js.map +1 -0
  127. package/dist/elements/spacer.d.ts +4 -0
  128. package/dist/elements/spacer.d.ts.map +1 -0
  129. package/dist/elements/spacer.js +9 -0
  130. package/dist/elements/spacer.js.map +1 -0
  131. package/dist/elements/speed-menu.d.ts +18 -0
  132. package/dist/elements/speed-menu.d.ts.map +1 -0
  133. package/dist/elements/speed-menu.js +56 -0
  134. package/dist/elements/speed-menu.js.map +1 -0
  135. package/dist/elements/start-button.d.ts +23 -0
  136. package/dist/elements/start-button.d.ts.map +1 -0
  137. package/dist/elements/start-button.js +120 -0
  138. package/dist/elements/start-button.js.map +1 -0
  139. package/dist/elements/subtitles-menu.d.ts +17 -0
  140. package/dist/elements/subtitles-menu.d.ts.map +1 -0
  141. package/dist/elements/subtitles-menu.js +108 -0
  142. package/dist/elements/subtitles-menu.js.map +1 -0
  143. package/dist/elements/time-element.d.ts +14 -0
  144. package/dist/elements/time-element.d.ts.map +1 -0
  145. package/dist/elements/time-element.js +29 -0
  146. package/dist/elements/time-element.js.map +1 -0
  147. package/dist/elements/volume-slider.d.ts +10 -0
  148. package/dist/elements/volume-slider.d.ts.map +1 -0
  149. package/dist/elements/volume-slider.js +46 -0
  150. package/dist/elements/volume-slider.js.map +1 -0
  151. package/dist/elements/volume.d.ts +9 -0
  152. package/dist/elements/volume.d.ts.map +1 -0
  153. package/dist/elements/volume.js +52 -0
  154. package/dist/elements/volume.js.map +1 -0
  155. package/dist/entries/audio-menu.d.ts +5 -0
  156. package/dist/entries/audio-menu.d.ts.map +1 -0
  157. package/dist/entries/audio-menu.js +8 -0
  158. package/dist/entries/audio-menu.js.map +1 -0
  159. package/dist/entries/chapters-menu.d.ts +5 -0
  160. package/dist/entries/chapters-menu.d.ts.map +1 -0
  161. package/dist/entries/chapters-menu.js +9 -0
  162. package/dist/entries/chapters-menu.js.map +1 -0
  163. package/dist/entries/control-bar.d.ts +5 -0
  164. package/dist/entries/control-bar.d.ts.map +1 -0
  165. package/dist/entries/control-bar.js +8 -0
  166. package/dist/entries/control-bar.js.map +1 -0
  167. package/dist/entries/current-time.d.ts +5 -0
  168. package/dist/entries/current-time.d.ts.map +1 -0
  169. package/dist/entries/current-time.js +8 -0
  170. package/dist/entries/current-time.js.map +1 -0
  171. package/dist/entries/drm-badge.d.ts +5 -0
  172. package/dist/entries/drm-badge.d.ts.map +1 -0
  173. package/dist/entries/drm-badge.js +8 -0
  174. package/dist/entries/drm-badge.js.map +1 -0
  175. package/dist/entries/duration.d.ts +5 -0
  176. package/dist/entries/duration.d.ts.map +1 -0
  177. package/dist/entries/duration.js +8 -0
  178. package/dist/entries/duration.js.map +1 -0
  179. package/dist/entries/error-screen.d.ts +5 -0
  180. package/dist/entries/error-screen.d.ts.map +1 -0
  181. package/dist/entries/error-screen.js +8 -0
  182. package/dist/entries/error-screen.js.map +1 -0
  183. package/dist/entries/fullscreen-button.d.ts +5 -0
  184. package/dist/entries/fullscreen-button.d.ts.map +1 -0
  185. package/dist/entries/fullscreen-button.js +8 -0
  186. package/dist/entries/fullscreen-button.js.map +1 -0
  187. package/dist/entries/live-button.d.ts +5 -0
  188. package/dist/entries/live-button.d.ts.map +1 -0
  189. package/dist/entries/live-button.js +8 -0
  190. package/dist/entries/live-button.js.map +1 -0
  191. package/dist/entries/mute-button.d.ts +5 -0
  192. package/dist/entries/mute-button.d.ts.map +1 -0
  193. package/dist/entries/mute-button.js +8 -0
  194. package/dist/entries/mute-button.js.map +1 -0
  195. package/dist/entries/panels.d.ts +5 -0
  196. package/dist/entries/panels.d.ts.map +1 -0
  197. package/dist/entries/panels.js +8 -0
  198. package/dist/entries/panels.js.map +1 -0
  199. package/dist/entries/pip-button.d.ts +5 -0
  200. package/dist/entries/pip-button.d.ts.map +1 -0
  201. package/dist/entries/pip-button.js +8 -0
  202. package/dist/entries/pip-button.js.map +1 -0
  203. package/dist/entries/play-button.d.ts +5 -0
  204. package/dist/entries/play-button.d.ts.map +1 -0
  205. package/dist/entries/play-button.js +8 -0
  206. package/dist/entries/play-button.js.map +1 -0
  207. package/dist/entries/quality-menu.d.ts +5 -0
  208. package/dist/entries/quality-menu.d.ts.map +1 -0
  209. package/dist/entries/quality-menu.js +8 -0
  210. package/dist/entries/quality-menu.js.map +1 -0
  211. package/dist/entries/remaining-time.d.ts +5 -0
  212. package/dist/entries/remaining-time.d.ts.map +1 -0
  213. package/dist/entries/remaining-time.js +9 -0
  214. package/dist/entries/remaining-time.js.map +1 -0
  215. package/dist/entries/seek-bar.d.ts +5 -0
  216. package/dist/entries/seek-bar.d.ts.map +1 -0
  217. package/dist/entries/seek-bar.js +8 -0
  218. package/dist/entries/seek-bar.js.map +1 -0
  219. package/dist/entries/skip-button.d.ts +5 -0
  220. package/dist/entries/skip-button.d.ts.map +1 -0
  221. package/dist/entries/skip-button.js +8 -0
  222. package/dist/entries/skip-button.js.map +1 -0
  223. package/dist/entries/spacer.d.ts +5 -0
  224. package/dist/entries/spacer.d.ts.map +1 -0
  225. package/dist/entries/spacer.js +8 -0
  226. package/dist/entries/spacer.js.map +1 -0
  227. package/dist/entries/speed-menu.d.ts +5 -0
  228. package/dist/entries/speed-menu.d.ts.map +1 -0
  229. package/dist/entries/speed-menu.js +8 -0
  230. package/dist/entries/speed-menu.js.map +1 -0
  231. package/dist/entries/start-button.d.ts +5 -0
  232. package/dist/entries/start-button.d.ts.map +1 -0
  233. package/dist/entries/start-button.js +8 -0
  234. package/dist/entries/start-button.js.map +1 -0
  235. package/dist/entries/subtitles-menu.d.ts +5 -0
  236. package/dist/entries/subtitles-menu.d.ts.map +1 -0
  237. package/dist/entries/subtitles-menu.js +8 -0
  238. package/dist/entries/subtitles-menu.js.map +1 -0
  239. package/dist/entries/volume-slider.d.ts +5 -0
  240. package/dist/entries/volume-slider.d.ts.map +1 -0
  241. package/dist/entries/volume-slider.js +8 -0
  242. package/dist/entries/volume-slider.js.map +1 -0
  243. package/dist/entries/volume.d.ts +7 -0
  244. package/dist/entries/volume.d.ts.map +1 -0
  245. package/dist/entries/volume.js +10 -0
  246. package/dist/entries/volume.js.map +1 -0
  247. package/dist/es2015/compose.js +33 -0
  248. package/dist/es2015/controls/chapters.js +61 -0
  249. package/dist/es2015/controls/cues.js +39 -11
  250. package/dist/es2015/controls/fullscreen.js +25 -23
  251. package/dist/es2015/controls/icons.js +5 -9
  252. package/dist/es2015/controls/menu.js +39 -35
  253. package/dist/es2015/controls/session.js +40 -0
  254. package/dist/es2015/controls/slider.js +18 -13
  255. package/dist/es2015/controls/time.js +1 -5
  256. package/dist/es2015/dom.js +5 -25
  257. package/dist/es2015/element-entry.js +10 -0
  258. package/dist/es2015/element.js +118 -65
  259. package/dist/es2015/elements/audio-menu.js +68 -0
  260. package/dist/es2015/elements/chapters-menu.js +68 -0
  261. package/dist/es2015/elements/component.js +85 -0
  262. package/dist/es2015/elements/control-bar.js +299 -0
  263. package/dist/es2015/elements/current-time.js +27 -0
  264. package/dist/es2015/elements/drm-badge.js +138 -0
  265. package/dist/es2015/elements/duration.js +23 -0
  266. package/dist/es2015/elements/error-screen.js +97 -0
  267. package/dist/es2015/elements/fullscreen-button.js +49 -0
  268. package/dist/es2015/elements/live-button.js +97 -0
  269. package/dist/es2015/elements/menu-element.js +39 -0
  270. package/dist/es2015/elements/mute-button.js +60 -0
  271. package/dist/es2015/elements/panels.js +52 -0
  272. package/dist/es2015/elements/pip-button.js +56 -0
  273. package/dist/es2015/elements/play-button.js +68 -0
  274. package/dist/es2015/elements/quality-menu.js +68 -0
  275. package/dist/es2015/elements/remaining-time.js +26 -0
  276. package/dist/es2015/elements/seek-bar.js +314 -0
  277. package/dist/es2015/elements/shared.js +155 -0
  278. package/dist/es2015/elements/skip-button.js +59 -0
  279. package/dist/es2015/elements/spacer.js +11 -0
  280. package/dist/es2015/elements/speed-menu.js +60 -0
  281. package/dist/es2015/elements/start-button.js +124 -0
  282. package/dist/es2015/elements/subtitles-menu.js +103 -0
  283. package/dist/es2015/elements/time-element.js +38 -0
  284. package/dist/es2015/elements/volume-slider.js +47 -0
  285. package/dist/es2015/elements/volume.js +52 -0
  286. package/dist/es2015/entries/audio-menu.js +7 -0
  287. package/dist/es2015/entries/chapters-menu.js +7 -0
  288. package/dist/es2015/entries/control-bar.js +7 -0
  289. package/dist/es2015/entries/current-time.js +7 -0
  290. package/dist/es2015/entries/drm-badge.js +7 -0
  291. package/dist/es2015/entries/duration.js +7 -0
  292. package/dist/es2015/entries/error-screen.js +7 -0
  293. package/dist/es2015/entries/fullscreen-button.js +7 -0
  294. package/dist/es2015/entries/live-button.js +7 -0
  295. package/dist/es2015/entries/mute-button.js +7 -0
  296. package/dist/es2015/entries/panels.js +7 -0
  297. package/dist/es2015/entries/pip-button.js +7 -0
  298. package/dist/es2015/entries/play-button.js +7 -0
  299. package/dist/es2015/entries/quality-menu.js +7 -0
  300. package/dist/es2015/entries/remaining-time.js +7 -0
  301. package/dist/es2015/entries/seek-bar.js +7 -0
  302. package/dist/es2015/entries/skip-button.js +7 -0
  303. package/dist/es2015/entries/spacer.js +7 -0
  304. package/dist/es2015/entries/speed-menu.js +7 -0
  305. package/dist/es2015/entries/start-button.js +7 -0
  306. package/dist/es2015/entries/subtitles-menu.js +7 -0
  307. package/dist/es2015/entries/volume-slider.js +7 -0
  308. package/dist/es2015/entries/volume.js +9 -0
  309. package/dist/es2015/host.js +23 -0
  310. package/dist/es2015/index.js +48 -9
  311. package/dist/es2015/labels.js +14 -0
  312. package/dist/es2015/style.js +40 -292
  313. package/dist/es2015/{panels/error.js → surface.js} +3 -3
  314. package/dist/es2015/tags.js +28 -0
  315. package/dist/host.d.ts +26 -0
  316. package/dist/host.d.ts.map +1 -0
  317. package/dist/host.js +23 -0
  318. package/dist/host.js.map +1 -0
  319. package/dist/index.d.ts +84 -3
  320. package/dist/index.d.ts.map +1 -1
  321. package/dist/index.js +24 -8
  322. package/dist/index.js.map +1 -1
  323. package/dist/labels.d.ts +7 -0
  324. package/dist/labels.d.ts.map +1 -0
  325. package/dist/labels.js +12 -0
  326. package/dist/labels.js.map +1 -0
  327. package/dist/style.d.ts +10 -2
  328. package/dist/style.d.ts.map +1 -1
  329. package/dist/style.js +40 -292
  330. package/dist/style.js.map +1 -1
  331. package/dist/surface.d.ts +15 -0
  332. package/dist/surface.d.ts.map +1 -0
  333. package/dist/{panels/error.js → surface.js} +3 -3
  334. package/dist/surface.js.map +1 -0
  335. package/dist/tags.d.ts +26 -0
  336. package/dist/tags.d.ts.map +1 -0
  337. package/dist/tags.js +26 -0
  338. package/dist/tags.js.map +1 -0
  339. package/package.json +22 -2
  340. package/dist/controls/bar.d.ts +0 -56
  341. package/dist/controls/bar.d.ts.map +0 -1
  342. package/dist/controls/bar.js +0 -245
  343. package/dist/controls/bar.js.map +0 -1
  344. package/dist/controls/buttons.d.ts +0 -13
  345. package/dist/controls/buttons.d.ts.map +0 -1
  346. package/dist/controls/buttons.js +0 -157
  347. package/dist/controls/buttons.js.map +0 -1
  348. package/dist/controls/control.d.ts +0 -12
  349. package/dist/controls/control.d.ts.map +0 -1
  350. package/dist/controls/control.js +0 -2
  351. package/dist/controls/control.js.map +0 -1
  352. package/dist/controls/keys.d.ts +0 -26
  353. package/dist/controls/keys.d.ts.map +0 -1
  354. package/dist/controls/keys.js +0 -66
  355. package/dist/controls/keys.js.map +0 -1
  356. package/dist/controls/live.d.ts +0 -10
  357. package/dist/controls/live.d.ts.map +0 -1
  358. package/dist/controls/live.js +0 -59
  359. package/dist/controls/live.js.map +0 -1
  360. package/dist/controls/menus.d.ts +0 -43
  361. package/dist/controls/menus.d.ts.map +0 -1
  362. package/dist/controls/menus.js +0 -262
  363. package/dist/controls/menus.js.map +0 -1
  364. package/dist/controls/options.d.ts +0 -44
  365. package/dist/controls/options.d.ts.map +0 -1
  366. package/dist/controls/options.js +0 -54
  367. package/dist/controls/options.js.map +0 -1
  368. package/dist/controls/screens.d.ts +0 -22
  369. package/dist/controls/screens.d.ts.map +0 -1
  370. package/dist/controls/screens.js +0 -69
  371. package/dist/controls/screens.js.map +0 -1
  372. package/dist/controls/seek.d.ts +0 -52
  373. package/dist/controls/seek.d.ts.map +0 -1
  374. package/dist/controls/seek.js +0 -215
  375. package/dist/controls/seek.js.map +0 -1
  376. package/dist/controls/speed.d.ts +0 -8
  377. package/dist/controls/speed.d.ts.map +0 -1
  378. package/dist/controls/speed.js +0 -34
  379. package/dist/controls/speed.js.map +0 -1
  380. package/dist/controls/volume.d.ts +0 -8
  381. package/dist/controls/volume.d.ts.map +0 -1
  382. package/dist/controls/volume.js +0 -29
  383. package/dist/controls/volume.js.map +0 -1
  384. package/dist/es2015/controls/bar.js +0 -227
  385. package/dist/es2015/controls/buttons.js +0 -146
  386. package/dist/es2015/controls/keys.js +0 -60
  387. package/dist/es2015/controls/live.js +0 -60
  388. package/dist/es2015/controls/menus.js +0 -258
  389. package/dist/es2015/controls/options.js +0 -46
  390. package/dist/es2015/controls/screens.js +0 -74
  391. package/dist/es2015/controls/seek.js +0 -203
  392. package/dist/es2015/controls/speed.js +0 -41
  393. package/dist/es2015/controls/volume.js +0 -30
  394. package/dist/es2015/panels/drm.js +0 -29
  395. package/dist/es2015/panels/live.js +0 -48
  396. package/dist/es2015/panels/quality.js +0 -52
  397. package/dist/es2015/panels/tracks.js +0 -47
  398. package/dist/panels/drm.d.ts +0 -8
  399. package/dist/panels/drm.d.ts.map +0 -1
  400. package/dist/panels/drm.js +0 -36
  401. package/dist/panels/drm.js.map +0 -1
  402. package/dist/panels/error.d.ts +0 -13
  403. package/dist/panels/error.d.ts.map +0 -1
  404. package/dist/panels/error.js.map +0 -1
  405. package/dist/panels/live.d.ts +0 -3
  406. package/dist/panels/live.d.ts.map +0 -1
  407. package/dist/panels/live.js +0 -56
  408. package/dist/panels/live.js.map +0 -1
  409. package/dist/panels/panel.d.ts +0 -13
  410. package/dist/panels/panel.d.ts.map +0 -1
  411. package/dist/panels/panel.js +0 -2
  412. package/dist/panels/panel.js.map +0 -1
  413. package/dist/panels/quality.d.ts +0 -3
  414. package/dist/panels/quality.d.ts.map +0 -1
  415. package/dist/panels/quality.js +0 -59
  416. package/dist/panels/quality.js.map +0 -1
  417. package/dist/panels/tracks.d.ts +0 -3
  418. package/dist/panels/tracks.d.ts.map +0 -1
  419. package/dist/panels/tracks.js +0 -49
  420. package/dist/panels/tracks.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { el, state } from "../dom.js";
2
- import { glyph, icon } from "./icons.js";
2
+ import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.148.0/helpers/esm/objectSpread2.js";
3
3
  //#region src/controls/menu.ts
4
4
  /**
5
5
  * The menu primitive the quality, audio, subtitles and speed menus share: a
@@ -7,8 +7,9 @@ import { glyph, icon } from "./icons.js";
7
7
  * with a heading each, and pages behind entries that open them. The button
8
8
  * carries the name and `aria-expanded`; the popup is `role="menu"`, every
9
9
  * choice a `menuitemradio` with `aria-checked`, the checked one also
10
- * carrying `checked` on its part name; an entry that opens a page is a
11
- * `menuitem` with `aria-haspopup`, and the page starts with a Back.
10
+ * carrying `checked` on its part name, because an item inside a shadow
11
+ * root has no other seam a page can style; an entry that opens a page is
12
+ * a `menuitem` with `aria-haspopup`, and the page starts with a Back.
12
13
  *
13
14
  * Open on click. Inside, the arrows move focus across every item, Home and
14
15
  * End jump, Enter and Space choose, Escape goes back a page or closes and
@@ -16,29 +17,26 @@ import { glyph, icon } from "./icons.js";
16
17
  * anywhere else closes it too.
17
18
  *
18
19
  * The popup never leaves the picture: on opening it takes the room above
19
- * the button inside the stage as its height and scrolls past that.
20
+ * the button down to `ceiling()` as its height and scrolls past that. The
21
+ * element that owns the menu carries `open` while the popup shows, which
22
+ * the bar reads to hold its fade.
20
23
  */
21
- /** Air between the popup's top and the stage's. */
24
+ /** Air between the popup's top and the picture's. */
22
25
  const AIR = 8;
23
26
  function isPage(entry) {
24
27
  return "entries" in entry;
25
28
  }
26
29
  function menu(options) {
27
- const { name } = options;
28
- const root = el("div", `menu ${name}-menu`);
29
- const button = el("button", `control ${name}-button`);
30
+ const { host } = options;
31
+ const button = el("button", "button");
30
32
  button.type = "button";
31
- button.setAttribute("aria-label", options.label);
32
33
  button.setAttribute("aria-haspopup", "menu");
33
34
  button.setAttribute("aria-expanded", "false");
34
- const svg = icon(options.icon);
35
- button.append(svg);
36
- const popup = el("div", `popup ${name}-popup`);
35
+ const popup = el("div", "popup");
37
36
  popup.setAttribute("role", "menu");
38
- popup.setAttribute("aria-label", options.label);
39
37
  popup.hidden = true;
40
- root.append(button, popup);
41
38
  let open = false;
39
+ let name = "";
42
40
  let first = [];
43
41
  /** The pages opened, the first being the menu itself. */
44
42
  let stack = [];
@@ -54,13 +52,13 @@ function menu(options) {
54
52
  return popup.getRootNode().activeElement;
55
53
  }
56
54
  function outside(event) {
57
- if (!event.composedPath().includes(root)) close();
55
+ if (!event.composedPath().includes(host)) close();
58
56
  }
59
- /** Whatever room there is above the button inside the stage, so the popup never leaves the picture. */
57
+ /** Whatever room there is above the button down to the ceiling, so the popup never leaves the picture. */
60
58
  function fit() {
61
- const stage = root.closest("[part~=\"stage\"]");
62
- if (stage === null) return;
63
- const room = button.getBoundingClientRect().top - stage.getBoundingClientRect().top - AIR;
59
+ const top = options.ceiling();
60
+ if (top === null) return;
61
+ const room = button.getBoundingClientRect().top - top - AIR;
64
62
  popup.style.maxHeight = `${Math.max(0, Math.floor(room))}px`;
65
63
  }
66
64
  function clear() {
@@ -85,19 +83,19 @@ function menu(options) {
85
83
  if (page === void 0) return;
86
84
  let tab = true;
87
85
  if (stack.length > 1) {
88
- const back = item(`item back-item ${name}-back-item`, page.label, () => {
86
+ const back = item("item back-item", page.label, () => {
89
87
  var _items$;
90
88
  stack.pop();
91
89
  render();
92
90
  (_items$ = items()[0]) === null || _items$ === void 0 || _items$.focus();
93
91
  });
94
92
  back.setAttribute("role", "menuitem");
95
- back.setAttribute("aria-label", `Back from ${page.label}`);
93
+ back.setAttribute("aria-label", options.back(page.label));
96
94
  popup.append(back);
97
95
  }
98
96
  for (const entry of page.entries) {
99
97
  if (isPage(entry)) {
100
- const link = item(`item page-item ${name}-${entry.name}-item`, entry.label, () => {
98
+ const link = item(`item page-item ${entry.name}-item`, entry.label, () => {
101
99
  var _items$2;
102
100
  stack.push(entry);
103
101
  render();
@@ -108,23 +106,24 @@ function menu(options) {
108
106
  popup.append(link);
109
107
  continue;
110
108
  }
111
- const section = el("div", `section ${name}-${entry.name}-section`);
109
+ const section = el("div", `section ${entry.name}-section`);
112
110
  section.setAttribute("role", "group");
113
111
  if (entry.label !== void 0) {
114
112
  section.setAttribute("aria-label", entry.label);
115
- section.append(el("div", `section-label ${name}-${entry.name}-label`, entry.label));
113
+ section.append(el("div", `section-label ${entry.name}-label`, entry.label));
116
114
  }
117
- for (const [id, text] of entry.items) {
118
- const choice = item(`item ${name}-item ${name}-${entry.name}-item`, text, () => {
115
+ for (const [id, text, detail] of entry.items) {
116
+ const choice = item(`item ${entry.name}-item`, text, () => {
119
117
  close();
120
118
  button.focus();
121
119
  entry.onSelect(id);
122
120
  });
121
+ if (detail !== void 0) choice.append(el("span", "item-detail", detail));
123
122
  choice.value = id;
124
123
  choice.setAttribute("role", "menuitemradio");
125
124
  const on = id === entry.value;
126
125
  choice.setAttribute("aria-checked", String(on));
127
- state(choice, `item ${name}-item ${name}-${entry.name}-item`, { checked: on });
126
+ state(choice, `item ${entry.name}-item`, { checked: on });
128
127
  if (on && tab) {
129
128
  choice.tabIndex = 0;
130
129
  tab = false;
@@ -140,7 +139,7 @@ function menu(options) {
140
139
  open = false;
141
140
  popup.hidden = true;
142
141
  button.setAttribute("aria-expanded", "false");
143
- state(root, `menu ${name}-menu`, { open: false });
142
+ host.removeAttribute("open");
144
143
  document.removeEventListener("pointerdown", outside, true);
145
144
  if (stack.length > 1) {
146
145
  stack = stack.slice(0, 1);
@@ -153,7 +152,7 @@ function menu(options) {
153
152
  open = true;
154
153
  popup.hidden = false;
155
154
  button.setAttribute("aria-expanded", "true");
156
- state(root, `menu ${name}-menu`, { open: true });
155
+ host.setAttribute("open", "");
157
156
  document.addEventListener("pointerdown", outside, true);
158
157
  fit();
159
158
  (_ref = (_checked = checked()) !== null && _checked !== void 0 ? _checked : items()[0]) === null || _ref === void 0 || _ref.focus();
@@ -200,19 +199,24 @@ function menu(options) {
200
199
  button.addEventListener("click", toggle);
201
200
  popup.addEventListener("keydown", key);
202
201
  return {
203
- root,
202
+ button,
203
+ popup,
204
+ label(text) {
205
+ name = text;
206
+ button.setAttribute("aria-label", text);
207
+ popup.setAttribute("aria-label", text);
208
+ const root = stack[0];
209
+ if (root !== void 0) stack[0] = _objectSpread2(_objectSpread2({}, root), {}, { label: text });
210
+ },
204
211
  fill(entries) {
205
212
  first = entries;
206
213
  stack = [{
207
- name,
208
- label: options.label,
214
+ name: "menu",
215
+ label: name,
209
216
  entries: first
210
217
  }];
211
218
  render();
212
219
  },
213
- show(glyphName) {
214
- glyph(svg, glyphName);
215
- },
216
220
  close,
217
221
  dispose() {
218
222
  close();
@@ -0,0 +1,40 @@
1
+ import { namespaces } from "../namespaces.js";
2
+ import { clock } from "./time.js";
3
+ import { spans, window } from "./ranges.js";
4
+ //#region src/controls/session.ts
5
+ /** The optional namespaces of an engine, or none for a native session. */
6
+ function optional(engine) {
7
+ return engine === null ? {} : namespaces(engine);
8
+ }
9
+ /** The live namespace once the stream has an availability window, which is what makes it live. */
10
+ function live(engine) {
11
+ const api = optional(engine).live;
12
+ return api !== void 0 && api.edge !== null ? api : void 0;
13
+ }
14
+ /**
15
+ * The span the bar maps: the engine's own availability window for live,
16
+ * where the session offers it, because the browser's seekable range on a
17
+ * live MediaSource is the union of that window and whatever is buffered
18
+ * and grows behind a paused playhead; the seekable range otherwise; zero
19
+ * to the duration for VOD.
20
+ */
21
+ function span(video, engine) {
22
+ var _engine$stats$snapsho, _engine$stats$snapsho2;
23
+ const on = live(engine) !== void 0;
24
+ const own = on ? (_engine$stats$snapsho = engine === null || engine === void 0 || (_engine$stats$snapsho2 = engine.stats.snapshot().live) === null || _engine$stats$snapsho2 === void 0 ? void 0 : _engine$stats$snapsho2.span) !== null && _engine$stats$snapsho !== void 0 ? _engine$stats$snapsho : null : null;
25
+ if (own !== null && own.end > own.start) return own;
26
+ return window(video.duration, spans(video.seekable), on);
27
+ }
28
+ /** The engine's forward buffer goal in seconds, which lives on the diagnostics snapshot and nowhere else. */
29
+ function bufferGoal(engine) {
30
+ var _engine$stats$snapsho3;
31
+ return (_engine$stats$snapsho3 = engine === null || engine === void 0 ? void 0 : engine.stats.snapshot().scheduling.bufferGoal) !== null && _engine$stats$snapsho3 !== void 0 ? _engine$stats$snapsho3 : null;
32
+ }
33
+ /** The wall clock at a presentation time, when the session can say it. */
34
+ function wall(engine, time) {
35
+ var _optional$pdt$toWallC, _optional$pdt;
36
+ const epoch = (_optional$pdt$toWallC = (_optional$pdt = optional(engine).pdt) === null || _optional$pdt === void 0 ? void 0 : _optional$pdt.toWallClock(time)) !== null && _optional$pdt$toWallC !== void 0 ? _optional$pdt$toWallC : null;
37
+ return epoch === null ? null : clock(epoch);
38
+ }
39
+ //#endregion
40
+ export { bufferGoal, live, optional, span, wall };
@@ -1,4 +1,4 @@
1
- import { el, state } from "../dom.js";
1
+ import { el } from "../dom.js";
2
2
  //#region src/controls/slider.ts
3
3
  /**
4
4
  * The slider primitive the seek bar and the volume share: a `div` with
@@ -14,20 +14,22 @@ import { el, state } from "../dom.js";
14
14
  * The track and the thumb sit on a rail inset from the root's edges by half
15
15
  * a thumb, so the thumb at either end is whole and not clipped, and every
16
16
  * fraction is measured against the rail.
17
+ *
18
+ * The steps are read on every key, so an element can take them from its
19
+ * attributes as they change.
17
20
  */
18
21
  function clamp(value, min, max) {
19
22
  return Math.min(max, Math.max(min, value));
20
23
  }
21
24
  function slider(options) {
22
- const { name, onInput } = options;
23
- const root = el("div", `slider ${name}`);
25
+ const { onInput } = options;
26
+ const root = el("div", "slider");
24
27
  root.setAttribute("role", "slider");
25
- root.setAttribute("aria-label", options.label);
26
28
  root.tabIndex = 0;
27
- const rail = el("div", `rail ${name}-rail`);
28
- const track = el("div", `track ${name}-track`);
29
- const fill = el("div", `fill ${name}-fill`);
30
- const thumb = el("div", `thumb ${name}-thumb`);
29
+ const rail = el("div", "rail");
30
+ const track = el("div", "track");
31
+ const fill = el("div", "fill");
32
+ const thumb = el("div", "thumb");
31
33
  track.append(fill);
32
34
  rail.append(track, thumb);
33
35
  root.append(rail);
@@ -48,7 +50,7 @@ function slider(options) {
48
50
  }
49
51
  function hold(on) {
50
52
  held = on;
51
- state(root, `slider ${name}`, { dragging: on });
53
+ options.onDrag(on);
52
54
  }
53
55
  function down(event) {
54
56
  if (event.button !== 0) return;
@@ -75,17 +77,17 @@ function slider(options) {
75
77
  switch (event.key) {
76
78
  case "ArrowRight":
77
79
  case "ArrowUp":
78
- next = value + options.step;
80
+ next = value + options.step();
79
81
  break;
80
82
  case "ArrowLeft":
81
83
  case "ArrowDown":
82
- next = value - options.step;
84
+ next = value - options.step();
83
85
  break;
84
86
  case "PageUp":
85
- next = value + options.page;
87
+ next = value + options.page();
86
88
  break;
87
89
  case "PageDown":
88
- next = value - options.page;
90
+ next = value - options.page();
89
91
  break;
90
92
  case "Home":
91
93
  next = min;
@@ -107,6 +109,9 @@ function slider(options) {
107
109
  root,
108
110
  track,
109
111
  rail,
112
+ label(text) {
113
+ root.setAttribute("aria-label", text);
114
+ },
110
115
  dragging() {
111
116
  return held;
112
117
  },
@@ -19,9 +19,5 @@ function clock(epochSeconds) {
19
19
  second: "2-digit"
20
20
  });
21
21
  }
22
- /** What a screen reader hears for a position: "1:23 of 4:56", or the position alone when the duration is unknown or infinite. */
23
- function describe(current, duration) {
24
- return Number.isFinite(duration) ? `${format(current)} of ${format(duration)}` : format(current);
25
- }
26
22
  //#endregion
27
- export { clock, describe, format };
23
+ export { clock, format };
@@ -1,12 +1,10 @@
1
1
  //#region src/dom.ts
2
2
  /**
3
- * The DOM helpers the panels share.
3
+ * The DOM helpers the controls share.
4
4
  *
5
- * Every element a panel creates carries a `part`, because `::part()` cannot
6
- * descend: `::part(quality) select` matches nothing, so an element without a
7
- * name of its own is unreachable from the page's stylesheet. Names are public
8
- * API from the first release. Each element also carries a generic name before
9
- * its specific one, so `::part(select)` reaches every menu at once.
5
+ * Every element a control creates carries a `part`, because `::part()`
6
+ * cannot descend: an element without a name of its own is unreachable from
7
+ * the page's stylesheet. Names are public API.
10
8
  */
11
9
  /** An element with its part names, and its text when it has any. */
12
10
  function el(tag, part, text) {
@@ -15,24 +13,6 @@ function el(tag, part, text) {
15
13
  if (text !== void 0) node.textContent = text;
16
14
  return node;
17
15
  }
18
- /** A `<select>` inside its `<label>`, so neither needs an id to be associated. */
19
- function menu(name, text) {
20
- const label = el("label", `label ${name}-label`);
21
- label.append(el("span", `text ${name}-text`, text));
22
- const select = el("select", `select ${name}-select`);
23
- label.append(select);
24
- return [label, select];
25
- }
26
- /** Replaces a menu's options and selects `value`. */
27
- function fill(select, items, value) {
28
- select.replaceChildren();
29
- for (const [id, text] of items) {
30
- const option = el("option", "option", text);
31
- option.value = id;
32
- select.append(option);
33
- }
34
- select.value = value;
35
- }
36
16
  /** Sets `part` to a base plus the state names that are on. State rides the part name because `::part()` takes no attribute selector. */
37
17
  function state(node, base, on) {
38
18
  const names = [base];
@@ -40,4 +20,4 @@ function state(node, base, on) {
40
20
  node.setAttribute("part", names.join(" "));
41
21
  }
42
22
  //#endregion
43
- export { el, fill, menu, state };
23
+ export { el, state };
@@ -0,0 +1,10 @@
1
+ import { MatteboxPlayerElement } from "./element.js";
2
+ //#region src/element-entry.ts
3
+ /**
4
+ * `@mattebox/player/element`: registers <mattebox-player> and nothing else.
5
+ * A page that takes this entry writes its own composition from the
6
+ * `@mattebox/player/elements/*` entries it imports, and carries only those.
7
+ */
8
+ MatteboxPlayerElement.define();
9
+ //#endregion
10
+ export { MatteboxPlayerElement };