@therealtinhtute/baroiplayer 1.2.1 → 2.0.0-beta.1

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 (302) hide show
  1. package/README.md +90 -71
  2. package/dist/components/icons/index.d.ts +36 -0
  3. package/dist/components/icons/index.d.ts.map +1 -0
  4. package/dist/components/icons/svg-icons/ArrowLeftIcon.d.ts +4 -0
  5. package/dist/components/icons/svg-icons/ArrowLeftIcon.d.ts.map +1 -0
  6. package/dist/components/icons/svg-icons/ArrowRightIcon.d.ts +5 -0
  7. package/dist/components/icons/svg-icons/ArrowRightIcon.d.ts.map +1 -0
  8. package/dist/components/icons/svg-icons/AudioIcon.d.ts +5 -0
  9. package/dist/components/icons/svg-icons/AudioIcon.d.ts.map +1 -0
  10. package/dist/components/icons/svg-icons/BackwardIcon.d.ts +5 -0
  11. package/dist/components/icons/svg-icons/BackwardIcon.d.ts.map +1 -0
  12. package/dist/components/icons/svg-icons/CameraIcon.d.ts +5 -0
  13. package/dist/components/icons/svg-icons/CameraIcon.d.ts.map +1 -0
  14. package/dist/components/icons/svg-icons/CheckIcon.d.ts +5 -0
  15. package/dist/components/icons/svg-icons/CheckIcon.d.ts.map +1 -0
  16. package/dist/components/icons/svg-icons/EnablePiPIcon.d.ts +4 -0
  17. package/dist/components/icons/svg-icons/EnablePiPIcon.d.ts.map +1 -0
  18. package/dist/components/icons/svg-icons/ForwardIcon.d.ts +5 -0
  19. package/dist/components/icons/svg-icons/ForwardIcon.d.ts.map +1 -0
  20. package/dist/components/icons/svg-icons/FullscreenEnterIcon.d.ts +5 -0
  21. package/dist/components/icons/svg-icons/FullscreenEnterIcon.d.ts.map +1 -0
  22. package/dist/components/icons/svg-icons/FullscreenExitIcon.d.ts +5 -0
  23. package/dist/components/icons/svg-icons/FullscreenExitIcon.d.ts.map +1 -0
  24. package/dist/components/icons/svg-icons/LoadingIcon.d.ts +5 -0
  25. package/dist/components/icons/svg-icons/LoadingIcon.d.ts.map +1 -0
  26. package/dist/components/icons/svg-icons/PauseIcon.d.ts +5 -0
  27. package/dist/components/icons/svg-icons/PauseIcon.d.ts.map +1 -0
  28. package/dist/components/icons/svg-icons/PlayIcon.d.ts +5 -0
  29. package/dist/components/icons/svg-icons/PlayIcon.d.ts.map +1 -0
  30. package/dist/components/icons/svg-icons/PlaybackSpeedIcon.d.ts +5 -0
  31. package/dist/components/icons/svg-icons/PlaybackSpeedIcon.d.ts.map +1 -0
  32. package/dist/components/icons/svg-icons/QualityIcon.d.ts +5 -0
  33. package/dist/components/icons/svg-icons/QualityIcon.d.ts.map +1 -0
  34. package/dist/components/icons/svg-icons/SettingsIcon.d.ts +5 -0
  35. package/dist/components/icons/svg-icons/SettingsIcon.d.ts.map +1 -0
  36. package/dist/components/icons/svg-icons/SliderIcon.d.ts +5 -0
  37. package/dist/components/icons/svg-icons/SliderIcon.d.ts.map +1 -0
  38. package/dist/components/icons/svg-icons/SubtitleIcon.d.ts +5 -0
  39. package/dist/components/icons/svg-icons/SubtitleIcon.d.ts.map +1 -0
  40. package/dist/components/icons/svg-icons/SubtitleOffIcon.d.ts +5 -0
  41. package/dist/components/icons/svg-icons/SubtitleOffIcon.d.ts.map +1 -0
  42. package/dist/components/icons/svg-icons/UnPiPIcon.d.ts +4 -0
  43. package/dist/components/icons/svg-icons/UnPiPIcon.d.ts.map +1 -0
  44. package/dist/components/icons/svg-icons/VolumeMutedIcon.d.ts +5 -0
  45. package/dist/components/icons/svg-icons/VolumeMutedIcon.d.ts.map +1 -0
  46. package/dist/components/icons/svg-icons/VolumeOneIcon.d.ts +5 -0
  47. package/dist/components/icons/svg-icons/VolumeOneIcon.d.ts.map +1 -0
  48. package/dist/components/icons/svg-icons/VolumeThreeIcon.d.ts +5 -0
  49. package/dist/components/icons/svg-icons/VolumeThreeIcon.d.ts.map +1 -0
  50. package/dist/components/icons/svg-icons/VolumeTwoIcon.d.ts +5 -0
  51. package/dist/components/icons/svg-icons/VolumeTwoIcon.d.ts.map +1 -0
  52. package/dist/components/variants/gradient/gradient-audio.d.ts +13 -0
  53. package/dist/components/variants/gradient/gradient-audio.d.ts.map +1 -0
  54. package/dist/components/variants/gradient/gradient-controls.d.ts +4 -0
  55. package/dist/components/variants/gradient/gradient-controls.d.ts.map +1 -0
  56. package/dist/components/variants/gradient/gradient-glyphs.d.ts +30 -0
  57. package/dist/components/variants/gradient/gradient-glyphs.d.ts.map +1 -0
  58. package/dist/components/variants/gradient/gradient-video.d.ts +16 -0
  59. package/dist/components/variants/gradient/gradient-video.d.ts.map +1 -0
  60. package/dist/index.css +1 -1
  61. package/dist/index.d.ts +5 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +1 -41
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.mjs +750 -5640
  66. package/dist/index.mjs.map +1 -1
  67. package/dist/package.json +3 -0
  68. package/package.json +110 -114
  69. package/src/components/variants/gradient/gradient-audio.tsx +47 -0
  70. package/src/components/variants/gradient/gradient-controls.tsx +254 -0
  71. package/src/components/variants/gradient/gradient-glyphs.test.tsx +69 -0
  72. package/src/components/variants/gradient/gradient-glyphs.tsx +129 -0
  73. package/src/components/variants/gradient/gradient-skin.css +211 -0
  74. package/src/components/variants/gradient/gradient-video.tsx +70 -0
  75. package/src/index.ts +5 -198
  76. package/src/test/accessibility-utils.ts +0 -59
  77. package/dist/context/media.js +0 -1
  78. package/dist/context/media.mjs +0 -3
  79. package/dist/context/store.js +0 -1
  80. package/dist/context/store.mjs +0 -3
  81. package/dist/context-Bzd5QCKM.cjs +0 -7
  82. package/dist/context-Bzd5QCKM.cjs.map +0 -1
  83. package/dist/context-DD_SH4tT.js +0 -1053
  84. package/dist/context-DD_SH4tT.js.map +0 -1
  85. package/dist/core-events-BRnLMB7s.cjs +0 -2
  86. package/dist/core-events-BRnLMB7s.cjs.map +0 -1
  87. package/dist/core-events-v_mKdj5p.js +0 -417
  88. package/dist/core-events-v_mKdj5p.js.map +0 -1
  89. package/dist/core-plugins-CMBv-yVh.cjs +0 -2
  90. package/dist/core-plugins-CMBv-yVh.cjs.map +0 -1
  91. package/dist/core-plugins-CqCxLkbd.js +0 -754
  92. package/dist/core-plugins-CqCxLkbd.js.map +0 -1
  93. package/dist/core.js +0 -15
  94. package/dist/core.js.map +0 -1
  95. package/dist/core.mjs +0 -960
  96. package/dist/core.mjs.map +0 -1
  97. package/dist/enhanced-components-BwjBqSA1.js +0 -2858
  98. package/dist/enhanced-components-BwjBqSA1.js.map +0 -1
  99. package/dist/enhanced-components-C-ka-XLp.cjs +0 -2
  100. package/dist/enhanced-components-C-ka-XLp.cjs.map +0 -1
  101. package/dist/hooks-B-IIWPJr.js +0 -1842
  102. package/dist/hooks-B-IIWPJr.js.map +0 -1
  103. package/dist/hooks-DcHzmBwA.cjs +0 -4
  104. package/dist/hooks-DcHzmBwA.cjs.map +0 -1
  105. package/dist/minimal-components-BYsMQde5.js +0 -1610
  106. package/dist/minimal-components-BYsMQde5.js.map +0 -1
  107. package/dist/minimal-components-CsxQbDp7.cjs +0 -2
  108. package/dist/minimal-components-CsxQbDp7.cjs.map +0 -1
  109. package/dist/minimal-components.css +0 -1
  110. package/dist/mona-loading.gif +0 -0
  111. package/dist/performance-monitor-DCSijLJg.js +0 -312
  112. package/dist/performance-monitor-DCSijLJg.js.map +0 -1
  113. package/dist/performance-monitor-wNFKmqMr.cjs +0 -2
  114. package/dist/performance-monitor-wNFKmqMr.cjs.map +0 -1
  115. package/dist/rolldown-runtime-BmowowmI.js +0 -14
  116. package/dist/rolldown-runtime-mLOUI7ql.cjs +0 -1
  117. package/dist/utils-D2gQ7c2R.js +0 -64
  118. package/dist/utils-D2gQ7c2R.js.map +0 -1
  119. package/dist/utils-DJaAwiZ9.cjs +0 -2
  120. package/dist/utils-DJaAwiZ9.cjs.map +0 -1
  121. package/dist/utils.js +0 -1
  122. package/dist/utils.mjs +0 -3
  123. package/src/adapters/videojs-adapter.tsx +0 -470
  124. package/src/assets/mona-loading.gif +0 -0
  125. package/src/components/AnimateLoading.tsx +0 -111
  126. package/src/components/LoadingState.tsx +0 -239
  127. package/src/components/__tests__/media-player-accessibility.test.tsx +0 -510
  128. package/src/components/__tests__/media-player-react19.test.tsx +0 -457
  129. package/src/components/accessibility/keyboard-help-overlay.tsx +0 -207
  130. package/src/components/audio-player.tsx +0 -85
  131. package/src/components/basic/index.ts +0 -37
  132. package/src/components/enhanced/advanced-features.tsx +0 -311
  133. package/src/components/enhanced/debug-panel.tsx +0 -448
  134. package/src/components/enhanced/enhanced-controls.tsx +0 -597
  135. package/src/components/enhanced/enhanced-media-player.tsx +0 -566
  136. package/src/components/enhanced/error-handling.tsx +0 -338
  137. package/src/components/enhanced/index.ts +0 -39
  138. package/src/components/enhanced/media-player-enhanced.tsx +0 -383
  139. package/src/components/examples/basic-video-player.tsx +0 -50
  140. package/src/components/examples/custom-controls-example.tsx +0 -63
  141. package/src/components/examples/enhanced-controls-example.tsx +0 -100
  142. package/src/components/examples/enhanced-media-player-example.tsx +0 -302
  143. package/src/components/examples/loading-states-demo.tsx +0 -141
  144. package/src/components/examples/react-19-demo.tsx +0 -349
  145. package/src/components/examples/volume-orientation-demo.tsx +0 -105
  146. package/src/components/icon-demo.tsx +0 -196
  147. package/src/components/legacy.tsx +0 -87
  148. package/src/components/media-metadata-display.tsx +0 -99
  149. package/src/components/media-player-audio.tsx +0 -39
  150. package/src/components/media-player-controls.tsx +0 -223
  151. package/src/components/media-player-error.tsx +0 -163
  152. package/src/components/media-player-fullscreen.tsx +0 -109
  153. package/src/components/media-player-hls.tsx +0 -111
  154. package/src/components/media-player-loading.tsx +0 -76
  155. package/src/components/media-player-play.tsx +0 -75
  156. package/src/components/media-player-root.tsx +0 -338
  157. package/src/components/media-player-seek.tsx +0 -168
  158. package/src/components/media-player-time.tsx +0 -99
  159. package/src/components/media-player-tooltip.tsx +0 -58
  160. package/src/components/media-player-video.tsx +0 -54
  161. package/src/components/media-player-volume.tsx +0 -155
  162. package/src/components/media-player.tsx +0 -292
  163. package/src/components/media-suspense.tsx +0 -344
  164. package/src/components/player-settings-form.tsx +0 -158
  165. package/src/components/react-player-wrapper.tsx +0 -651
  166. package/src/components/simple-video-player.tsx +0 -62
  167. package/src/components/ui/blur-poster.tsx +0 -96
  168. package/src/components/ui/empty-state.tsx +0 -91
  169. package/src/components/ui/enhanced-seek-bar.tsx +0 -254
  170. package/src/components/ui/error-state.tsx +0 -124
  171. package/src/components/ui/fullscreen-button.tsx +0 -81
  172. package/src/components/ui/loading-skeleton.tsx +0 -107
  173. package/src/components/ui/media-resource-preloader.tsx +0 -458
  174. package/src/components/ui/offline-message.tsx +0 -98
  175. package/src/components/ui/play-button.tsx +0 -99
  176. package/src/components/ui/seek-bar.tsx +0 -191
  177. package/src/components/ui/time-display.tsx +0 -61
  178. package/src/components/ui/volume-control.tsx +0 -190
  179. package/src/components/unified/base-media-player.tsx +0 -252
  180. package/src/components/unified/media-player.tsx +0 -75
  181. package/src/components/variants/minimal/AccessibleMinimalPlayer.tsx +0 -587
  182. package/src/components/variants/minimal/EnhancedMinimalMediaPlayer.tsx +0 -573
  183. package/src/components/variants/minimal/MinimalControls.tsx +0 -124
  184. package/src/components/variants/minimal/MinimalLoading.tsx +0 -28
  185. package/src/components/variants/minimal/MinimalMediaPlayer.tsx +0 -318
  186. package/src/components/variants/minimal/MinimalOverlay.tsx +0 -58
  187. package/src/components/variants/minimal/MinimalPlayButton.tsx +0 -56
  188. package/src/components/variants/minimal/MinimalSeekBar.tsx +0 -140
  189. package/src/components/variants/minimal/MinimalVolumeControl.tsx +0 -75
  190. package/src/components/variants/minimal/SimpleMinimalPlayer.tsx +0 -206
  191. package/src/components/variants/minimal/components/CenterPlayButton.tsx +0 -22
  192. package/src/components/variants/minimal/components/ControlBar.tsx +0 -142
  193. package/src/components/variants/minimal/components/EnhancedSettingsMenu.tsx +0 -412
  194. package/src/components/variants/minimal/components/PlaybackControls.tsx +0 -46
  195. package/src/components/variants/minimal/components/RightControls.tsx +0 -164
  196. package/src/components/variants/minimal/components/SeekBar.tsx +0 -127
  197. package/src/components/variants/minimal/components/SettingsDropdown.tsx +0 -68
  198. package/src/components/variants/minimal/components/SubtitleDisplay.tsx +0 -21
  199. package/src/components/variants/minimal/components/TimeDisplay.tsx +0 -15
  200. package/src/components/variants/minimal/components/VideoElement.tsx +0 -35
  201. package/src/components/variants/minimal/components/VolumeControl.tsx +0 -220
  202. package/src/components/variants/minimal/index.ts +0 -23
  203. package/src/components/video-player.tsx +0 -100
  204. package/src/context/__tests__/media-store.test.ts +0 -509
  205. package/src/context/error-handling.ts +0 -398
  206. package/src/context/media-context.tsx +0 -254
  207. package/src/context/media-provider.tsx +0 -264
  208. package/src/context/media-store.ts +0 -387
  209. package/src/context/persistence.ts +0 -462
  210. package/src/core/events/event-system.ts +0 -448
  211. package/src/core/events/hooks.ts +0 -325
  212. package/src/core/events/index.ts +0 -22
  213. package/src/core/events/middleware.ts +0 -286
  214. package/src/core/index.ts +0 -22
  215. package/src/core/optimization/bundle-optimizer.tsx +0 -312
  216. package/src/core/performance/cicd.ts +0 -98
  217. package/src/core/performance/index.ts +0 -38
  218. package/src/core/performance/media-loading-optimizer.ts +0 -545
  219. package/src/core/performance/performance-budgets.ts +0 -437
  220. package/src/core/performance/performance-monitor.tsx +0 -488
  221. package/src/core/performance/performance-testing.ts +0 -461
  222. package/src/core/plugins/__tests__/registry.test.ts +0 -595
  223. package/src/core/plugins/base-plugin.ts +0 -225
  224. package/src/core/plugins/enhanced-plugin-system.ts +0 -435
  225. package/src/core/plugins/examples/analytics-plugin.ts +0 -241
  226. package/src/core/plugins/index.ts +0 -39
  227. package/src/core/plugins/registry.ts +0 -546
  228. package/src/core/plugins/types.ts +0 -169
  229. package/src/core/plugins/utils.ts +0 -317
  230. package/src/core/progressive-loading.tsx +0 -331
  231. package/src/core/providers/enhanced-hls-provider.ts +0 -307
  232. package/src/core/providers/lazy-provider.tsx +0 -14
  233. package/src/core/providers/service-provider.tsx +0 -164
  234. package/src/core/utils.tsx +0 -34
  235. package/src/features/media-session/media-session-manager.ts +0 -411
  236. package/src/features/picture-in-picture/pip-manager.ts +0 -428
  237. package/src/features/playlist/playlist-manager.ts +0 -626
  238. package/src/features/subtitles/subtitle-manager.ts +0 -435
  239. package/src/features/subtitles/subtitle-parser.ts +0 -284
  240. package/src/features/thumbnails/thumbnail-generator.ts +0 -528
  241. package/src/hooks/__tests__/currentTime-fix.test.ts +0 -149
  242. package/src/hooks/__tests__/use-media-player.test.ts +0 -712
  243. package/src/hooks/__tests__/use-media-state.test.tsx +0 -316
  244. package/src/hooks/accessibility/index.ts +0 -27
  245. package/src/hooks/accessibility/use-accessibility-preferences.ts +0 -190
  246. package/src/hooks/accessibility/use-focus-management.ts +0 -183
  247. package/src/hooks/accessibility/use-keyboard-shortcuts.ts +0 -152
  248. package/src/hooks/accessibility/use-screen-reader.ts +0 -212
  249. package/src/hooks/core/index.ts +0 -47
  250. package/src/hooks/legacy.ts +0 -21
  251. package/src/hooks/use-buffer-health.ts +0 -218
  252. package/src/hooks/use-enhanced-media-player.ts +0 -575
  253. package/src/hooks/use-focus-trap.tsx +0 -162
  254. package/src/hooks/use-intelligent-preloading.ts +0 -387
  255. package/src/hooks/use-keyboard-controls.ts +0 -115
  256. package/src/hooks/use-keyboard-shortcuts.ts +0 -255
  257. package/src/hooks/use-media-actions.ts +0 -184
  258. package/src/hooks/use-media-metadata.ts +0 -91
  259. package/src/hooks/use-media-optimistic.ts +0 -264
  260. package/src/hooks/use-media-player.ts +0 -343
  261. package/src/hooks/use-media-state.ts +0 -194
  262. package/src/hooks/use-memory-optimization.ts +0 -360
  263. package/src/hooks/use-network-status.ts +0 -124
  264. package/src/hooks/use-optimistic-controls.ts +0 -95
  265. package/src/hooks/use-optimized-media.ts +0 -283
  266. package/src/hooks/use-smart-preload.ts +0 -229
  267. package/src/hooks/use-touch-gestures.ts +0 -461
  268. package/src/hooks/useEnhancedSubtitles.ts +0 -258
  269. package/src/hooks/useKeyboardShortcuts.ts +0 -106
  270. package/src/hooks/useMediaControls.ts +0 -52
  271. package/src/hooks/useScreenshot.ts +0 -77
  272. package/src/hooks/useSubtitles.ts +0 -91
  273. package/src/hooks/useVideoPlayer.ts +0 -278
  274. package/src/icons/components/FullscreenIcon.tsx +0 -36
  275. package/src/icons/components/SettingsIcon.tsx +0 -37
  276. package/src/icons/components/animated/LoadingIcon.tsx +0 -27
  277. package/src/icons/components/animated/PlayPauseIcon.tsx +0 -42
  278. package/src/icons/components/media/PauseIcon.tsx +0 -38
  279. package/src/icons/components/media/PlayIcon.tsx +0 -37
  280. package/src/icons/components/volume/VolumeIcon.tsx +0 -38
  281. package/src/icons/components/volume/VolumeOffIcon.tsx +0 -38
  282. package/src/icons/index.ts +0 -56
  283. package/src/icons/provider.tsx +0 -58
  284. package/src/icons/types.ts +0 -60
  285. package/src/index-enhanced.ts +0 -35
  286. package/src/index-legacy.ts +0 -324
  287. package/src/index.css +0 -102
  288. package/src/lib/__tests__/async-utils.test.ts +0 -291
  289. package/src/lib/async-utils.ts +0 -194
  290. package/src/lib/deprecation.ts +0 -51
  291. package/src/lib/format-time.ts +0 -37
  292. package/src/lib/index.ts +0 -4
  293. package/src/lib/utils.ts +0 -6
  294. package/src/styles/globals.css +0 -462
  295. package/src/styles/minimal-player.css +0 -621
  296. package/src/styles/pixel-art.css +0 -41
  297. package/src/styles/videojs.css +0 -100
  298. package/src/types/assets.d.ts +0 -29
  299. package/src/types/events.ts +0 -47
  300. package/src/types/formats.ts +0 -79
  301. package/src/types/index.ts +0 -203
  302. package/src/types/videojs-plugins.d.ts +0 -14
@@ -1,462 +0,0 @@
1
- /* BaroiPlayer Global Styles
2
- * Modern media player with Tailwind CSS v4 integration
3
- * Includes design tokens, accessibility features, and responsive design
4
- */
5
-
6
- /* Import Tailwind CSS base styles */
7
- @import "tailwindcss";
8
-
9
- /* Import design tokens from UI package if available */
10
- @import "@rp/ui/styles/design-tokens.css";
11
-
12
- /* ===== ROOT STYLES & CSS VARIABLES ===== */
13
- :root {
14
- /* Media Player Colors */
15
- --media-primary: oklch(62% 0.25 240);
16
- --media-secondary: oklch(75% 0.18 180);
17
- --media-accent: oklch(85% 0.12 60);
18
-
19
- /* Player Background */
20
- --media-bg: oklch(8% 0.02 240);
21
- --media-surface: oklch(12% 0.02 240);
22
- --media-overlay: oklch(15% 0.02 240 / 0.9);
23
-
24
- /* Text Colors */
25
- --media-text-primary: oklch(95% 0.005 240);
26
- --media-text-secondary: oklch(75% 0.008 240);
27
- --media-text-muted: oklch(60% 0.01 240);
28
-
29
- /* Control States */
30
- --media-control-idle: oklch(68% 0.2 142);
31
- --media-control-hover: oklch(85% 0.08 240);
32
- --media-control-active: oklch(72% 0.15 30);
33
- --media-control-disabled: oklch(45% 0.005 240);
34
-
35
- /* Progress Bar */
36
- --media-progress-bg: oklch(25% 0.02 240);
37
- --media-progress-fill: oklch(75% 0.18 240);
38
- --media-progress-buffered: oklch(60% 0.12 240);
39
-
40
- /* Focus & Accessibility */
41
- --media-focus-outline: 2px solid var(--media-secondary);
42
- --media-focus-offset: 2px;
43
-
44
- /* Animations */
45
- --media-transition: 200ms;
46
- --media-ease: cubic-bezier(0.4, 0, 0.2, 1);
47
- }
48
-
49
- /* Dark mode support */
50
- @media (prefers-color-scheme: dark) {
51
- :root {
52
- --media-bg: oklch(6% 0.01 240);
53
- --media-surface: oklch(10% 0.01 240);
54
- --media-text-primary: oklch(98% 0.003 240);
55
- }
56
- }
57
-
58
- /* ===== BASE STYLES ===== */
59
- * {
60
- box-sizing: border-box;
61
- }
62
-
63
- body {
64
- margin: 0;
65
- font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
66
- background-color: var(--media-bg);
67
- color: var(--media-text-primary);
68
- line-height: 1.5;
69
- }
70
-
71
- /* ===== MEDIA PLAYER COMPONENT STYLES ===== */
72
-
73
- /* Base Player Container */
74
- .media-player {
75
- position: relative;
76
- width: 100%;
77
- height: 100%;
78
- background-color: var(--media-bg);
79
- border-radius: 0.5rem;
80
- overflow: hidden;
81
- }
82
-
83
- /* Player Video Element */
84
- .media-player video,
85
- .media-player audio {
86
- width: 100%;
87
- height: 100%;
88
- object-fit: contain;
89
- }
90
-
91
- /* Control Panel */
92
- .media-player-controls {
93
- position: absolute;
94
- bottom: 0;
95
- left: 0;
96
- right: 0;
97
- background: linear-gradient(to top, var(--media-overlay), transparent);
98
- padding: 1rem;
99
- display: flex;
100
- align-items: center;
101
- gap: 0.75rem;
102
- transition: opacity var(--media-transition) var(--media-ease);
103
- }
104
-
105
- /* Play/Pause Button */
106
- .media-player-play-button {
107
- width: 2.5rem;
108
- height: 2.5rem;
109
- border-radius: 50%;
110
- background-color: var(--media-control-idle);
111
- border: none;
112
- color: white;
113
- cursor: pointer;
114
- display: flex;
115
- align-items: center;
116
- justify-content: center;
117
- transition: all var(--media-transition) var(--media-ease);
118
- }
119
-
120
- .media-player-play-button:hover {
121
- background-color: var(--media-control-hover);
122
- transform: scale(1.05);
123
- }
124
-
125
- .media-player-play-button:focus {
126
- outline: var(--media-focus-outline);
127
- outline-offset: var(--media-focus-offset);
128
- }
129
-
130
- /* Progress Bar */
131
- .media-player-progress {
132
- flex: 1;
133
- height: 0.5rem;
134
- background-color: var(--media-progress-bg);
135
- border-radius: 0.25rem;
136
- position: relative;
137
- cursor: pointer;
138
- overflow: hidden;
139
- }
140
-
141
- .media-player-progress-bar {
142
- height: 100%;
143
- background-color: var(--media-progress-fill);
144
- border-radius: 0.25rem;
145
- position: relative;
146
- transition: width 0.1s linear;
147
- }
148
-
149
- .media-player-progress-buffered {
150
- height: 100%;
151
- background-color: var(--media-progress-buffered);
152
- border-radius: 0.25rem;
153
- position: absolute;
154
- top: 0;
155
- left: 0;
156
- }
157
-
158
- /* Volume Control */
159
- .media-player-volume {
160
- display: flex;
161
- align-items: center;
162
- gap: 0.5rem;
163
- }
164
-
165
- .media-player-volume-slider {
166
- width: 6rem;
167
- height: 0.25rem;
168
- background-color: var(--media-progress-bg);
169
- border-radius: 0.125rem;
170
- outline: none;
171
- cursor: pointer;
172
- }
173
-
174
- .media-player-volume-slider::-webkit-slider-thumb {
175
- appearance: none;
176
- width: 1rem;
177
- height: 1rem;
178
- border-radius: 50%;
179
- background-color: var(--media-control-idle);
180
- cursor: pointer;
181
- }
182
-
183
- /* Time Display */
184
- .media-player-time {
185
- font-size: 0.875rem;
186
- color: var(--media-text-secondary);
187
- font-variant-numeric: tabular-nums;
188
- min-width: 5rem;
189
- text-align: center;
190
- }
191
-
192
- /* Fullscreen Button */
193
- .media-player-fullscreen-button {
194
- width: 2rem;
195
- height: 2rem;
196
- border-radius: 0.25rem;
197
- background-color: transparent;
198
- border: 1px solid var(--media-control-idle);
199
- color: var(--media-text-primary);
200
- cursor: pointer;
201
- display: flex;
202
- align-items: center;
203
- justify-content: center;
204
- transition: all var(--media-transition) var(--media-ease);
205
- }
206
-
207
- .media-player-fullscreen-button:hover {
208
- background-color: var(--media-control-hover);
209
- }
210
-
211
- /* Settings Menu */
212
- .media-player-settings {
213
- position: absolute;
214
- bottom: 4rem;
215
- right: 1rem;
216
- background-color: var(--media-surface);
217
- border: 1px solid var(--media-progress-bg);
218
- border-radius: 0.5rem;
219
- padding: 0.5rem;
220
- min-width: 12rem;
221
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
222
- }
223
-
224
- .media-player-settings-item {
225
- padding: 0.5rem 0.75rem;
226
- border-radius: 0.25rem;
227
- cursor: pointer;
228
- color: var(--media-text-primary);
229
- transition: background-color var(--media-transition) var(--media-ease);
230
- }
231
-
232
- .media-player-settings-item:hover {
233
- background-color: var(--media-control-hover);
234
- }
235
-
236
- /* Loading Spinner */
237
- .media-player-loading {
238
- position: absolute;
239
- top: 50%;
240
- left: 50%;
241
- transform: translate(-50%, -50%);
242
- width: 3rem;
243
- height: 3rem;
244
- border: 3px solid var(--media-progress-bg);
245
- border-top-color: var(--media-progress-fill);
246
- border-radius: 50%;
247
- animation: spin 1s linear infinite;
248
- }
249
-
250
- @keyframes spin {
251
- to {
252
- transform: translate(-50%, -50%) rotate(360deg);
253
- }
254
- }
255
-
256
- /* Error Display */
257
- .media-player-error {
258
- position: absolute;
259
- top: 50%;
260
- left: 50%;
261
- transform: translate(-50%, -50%);
262
- background-color: var(--media-surface);
263
- padding: 1.5rem;
264
- border-radius: 0.5rem;
265
- text-align: center;
266
- max-width: 80%;
267
- }
268
-
269
- .media-player-error-title {
270
- color: var(--media-text-primary);
271
- font-weight: 600;
272
- margin-bottom: 0.5rem;
273
- }
274
-
275
- .media-player-error-message {
276
- color: var(--media-text-secondary);
277
- font-size: 0.875rem;
278
- }
279
-
280
- /* Subtitle Display */
281
- .media-player-subtitles {
282
- position: absolute;
283
- bottom: 4rem;
284
- left: 0;
285
- right: 0;
286
- text-align: center;
287
- padding: 0 1rem;
288
- pointer-events: none;
289
- }
290
-
291
- .media-player-subtitle-text {
292
- display: inline-block;
293
- background-color: rgba(0, 0, 0, 0.8);
294
- color: white;
295
- padding: 0.25rem 0.5rem;
296
- border-radius: 0.25rem;
297
- font-size: 1rem;
298
- line-height: 1.4;
299
- }
300
-
301
- /* Picture-in-Picture Button */
302
- .media-player-pip-button {
303
- width: 2rem;
304
- height: 2rem;
305
- border-radius: 0.25rem;
306
- background-color: transparent;
307
- border: 1px solid var(--media-control-idle);
308
- color: var(--media-text-primary);
309
- cursor: pointer;
310
- display: flex;
311
- align-items: center;
312
- justify-content: center;
313
- transition: all var(--media-transition) var(--media-ease);
314
- }
315
-
316
- .media-player-pip-button:hover {
317
- background-color: var(--media-control-hover);
318
- }
319
-
320
- /* Responsive Design */
321
- @media (max-width: 640px) {
322
- .media-player-controls {
323
- padding: 0.75rem;
324
- gap: 0.5rem;
325
- }
326
-
327
- .media-player-play-button {
328
- width: 2rem;
329
- height: 2rem;
330
- }
331
-
332
- .media-player-volume-slider {
333
- width: 4rem;
334
- }
335
-
336
- .media-player-time {
337
- font-size: 0.75rem;
338
- min-width: 4rem;
339
- }
340
-
341
- .media-player-fullscreen-button,
342
- .media-player-pip-button {
343
- width: 1.75rem;
344
- height: 1.75rem;
345
- }
346
- }
347
-
348
- /* ===== ACCESSIBILITY ENHANCEMENTS ===== */
349
-
350
- /* Focus Management */
351
- .media-player *:focus {
352
- outline: var(--media-focus-outline);
353
- outline-offset: var(--media-focus-offset);
354
- }
355
-
356
- /* High Contrast Mode */
357
- @media (prefers-contrast: high) {
358
- :root {
359
- --media-focus-outline: 3px solid currentColor;
360
- --media-focus-offset: 3px;
361
- }
362
-
363
- .media-player-play-button,
364
- .media-player-fullscreen-button,
365
- .media-player-pip-button {
366
- border-width: 2px;
367
- }
368
- }
369
-
370
- /* Reduced Motion */
371
- @media (prefers-reduced-motion: reduce) {
372
- * {
373
- animation-duration: 0.01ms !important;
374
- animation-iteration-count: 1 !important;
375
- transition-duration: 0.01ms !important;
376
- scroll-behavior: auto !important;
377
- }
378
- }
379
-
380
- /* Screen Reader Only */
381
- .sr-only {
382
- position: absolute;
383
- width: 1px;
384
- height: 1px;
385
- padding: 0;
386
- margin: -1px;
387
- overflow: hidden;
388
- clip: rect(0, 0, 0, 0);
389
- white-space: nowrap;
390
- border: 0;
391
- }
392
-
393
- /* ===== MINIMAL PLAYER VARIANT ===== */
394
-
395
- .minimal-player {
396
- --minimal-bg: transparent;
397
- --minimal-border: 1px solid rgba(255, 255, 255, 0.1);
398
- }
399
-
400
- .minimal-player .media-player-controls {
401
- background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
402
- border-top: var(--minimal-border);
403
- }
404
-
405
- .minimal-player .media-player-play-button {
406
- background-color: rgba(255, 255, 255, 0.1);
407
- backdrop-filter: blur(8px);
408
- }
409
-
410
- .minimal-player .media-player-settings {
411
- background-color: rgba(20, 20, 20, 0.95);
412
- backdrop-filter: blur(12px);
413
- }
414
-
415
- /* ===== KEYBOARD NAVIGATION ===== */
416
-
417
- /* Keyboard shortcut help */
418
- .media-player-keyboard-help {
419
- position: absolute;
420
- top: 1rem;
421
- right: 1rem;
422
- background-color: var(--media-surface);
423
- border: 1px solid var(--media-progress-bg);
424
- border-radius: 0.5rem;
425
- padding: 1rem;
426
- min-width: 16rem;
427
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
428
- z-index: 1000;
429
- }
430
-
431
- .media-player-keyboard-help h3 {
432
- margin: 0 0 0.5rem 0;
433
- color: var(--media-text-primary);
434
- font-size: 0.875rem;
435
- font-weight: 600;
436
- }
437
-
438
- .media-player-keyboard-help-item {
439
- display: flex;
440
- justify-content: space-between;
441
- padding: 0.25rem 0;
442
- font-size: 0.75rem;
443
- }
444
-
445
- .media-player-keyboard-help-key {
446
- color: var(--media-text-secondary);
447
- font-family: monospace;
448
- }
449
-
450
- /* ===== PRINT STYLES ===== */
451
- @media print {
452
- .media-player {
453
- break-inside: avoid;
454
- border: 1px solid currentColor;
455
- }
456
-
457
- .media-player-controls,
458
- .media-player-loading,
459
- .media-player-error {
460
- display: none;
461
- }
462
- }