@vizor-vr/player 0.2.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.
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/dist/__tests__/adapter-factory.test.d.ts +2 -0
- package/dist/__tests__/adapter-factory.test.d.ts.map +1 -0
- package/dist/__tests__/analytics-collector.test.d.ts +2 -0
- package/dist/__tests__/analytics-collector.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-manager.test.d.ts +2 -0
- package/dist/__tests__/annotation-manager.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-popup.test.d.ts +2 -0
- package/dist/__tests__/annotation-popup.test.d.ts.map +1 -0
- package/dist/__tests__/annotation-sprite.test.d.ts +2 -0
- package/dist/__tests__/annotation-sprite.test.d.ts.map +1 -0
- package/dist/__tests__/audio-manager.test.d.ts +2 -0
- package/dist/__tests__/audio-manager.test.d.ts.map +1 -0
- package/dist/__tests__/base-element-attrs.test.d.ts +2 -0
- package/dist/__tests__/base-element-attrs.test.d.ts.map +1 -0
- package/dist/__tests__/camera-controller.test.d.ts +2 -0
- package/dist/__tests__/camera-controller.test.d.ts.map +1 -0
- package/dist/__tests__/caption-renderer.test.d.ts +2 -0
- package/dist/__tests__/caption-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/cc-button.test.d.ts +2 -0
- package/dist/__tests__/cc-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-button.test.d.ts +2 -0
- package/dist/__tests__/chat-button.test.d.ts.map +1 -0
- package/dist/__tests__/chat-panel.test.d.ts +2 -0
- package/dist/__tests__/chat-panel.test.d.ts.map +1 -0
- package/dist/__tests__/cinema-projection.test.d.ts +2 -0
- package/dist/__tests__/cinema-projection.test.d.ts.map +1 -0
- package/dist/__tests__/collab-client.test.d.ts +2 -0
- package/dist/__tests__/collab-client.test.d.ts.map +1 -0
- package/dist/__tests__/compass.test.d.ts +2 -0
- package/dist/__tests__/compass.test.d.ts.map +1 -0
- package/dist/__tests__/controls-overlay.test.d.ts +2 -0
- package/dist/__tests__/controls-overlay.test.d.ts.map +1 -0
- package/dist/__tests__/cubemap-projection.test.d.ts +2 -0
- package/dist/__tests__/cubemap-projection.test.d.ts.map +1 -0
- package/dist/__tests__/dash-adapter.test.d.ts +2 -0
- package/dist/__tests__/dash-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/eac-projection.test.d.ts +2 -0
- package/dist/__tests__/eac-projection.test.d.ts.map +1 -0
- package/dist/__tests__/equirect-projection.test.d.ts +2 -0
- package/dist/__tests__/equirect-projection.test.d.ts.map +1 -0
- package/dist/__tests__/event-emitter.test.d.ts +2 -0
- package/dist/__tests__/event-emitter.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts +2 -0
- package/dist/__tests__/feature-gates-branding.test.d.ts.map +1 -0
- package/dist/__tests__/feature-gates.test.d.ts +2 -0
- package/dist/__tests__/feature-gates.test.d.ts.map +1 -0
- package/dist/__tests__/fisheye-projection.test.d.ts +2 -0
- package/dist/__tests__/fisheye-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-projection.test.d.ts +2 -0
- package/dist/__tests__/flat-projection.test.d.ts.map +1 -0
- package/dist/__tests__/flat-video-integration.test.d.ts +2 -0
- package/dist/__tests__/flat-video-integration.test.d.ts.map +1 -0
- package/dist/__tests__/fullscreen-button.test.d.ts +2 -0
- package/dist/__tests__/fullscreen-button.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts +2 -0
- package/dist/__tests__/gaze-cursor-manager.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-sender.test.d.ts +2 -0
- package/dist/__tests__/gaze-sender.test.d.ts.map +1 -0
- package/dist/__tests__/gaze-tracker.test.d.ts +2 -0
- package/dist/__tests__/gaze-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/hls-adapter.test.d.ts +2 -0
- package/dist/__tests__/hls-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts +2 -0
- package/dist/__tests__/hotspot-interaction.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-manager.test.d.ts +2 -0
- package/dist/__tests__/hotspot-manager.test.d.ts.map +1 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts +2 -0
- package/dist/__tests__/hotspot-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/integrity.test.d.ts +2 -0
- package/dist/__tests__/integrity.test.d.ts.map +1 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts +2 -0
- package/dist/__tests__/keyboard-shortcuts.test.d.ts.map +1 -0
- package/dist/__tests__/license-checker.test.d.ts +2 -0
- package/dist/__tests__/license-checker.test.d.ts.map +1 -0
- package/dist/__tests__/live-indicator.test.d.ts +2 -0
- package/dist/__tests__/live-indicator.test.d.ts.map +1 -0
- package/dist/__tests__/live.test.d.ts +2 -0
- package/dist/__tests__/live.test.d.ts.map +1 -0
- package/dist/__tests__/master-key.test.d.ts +2 -0
- package/dist/__tests__/master-key.test.d.ts.map +1 -0
- package/dist/__tests__/media-element.test.d.ts +2 -0
- package/dist/__tests__/media-element.test.d.ts.map +1 -0
- package/dist/__tests__/meta-config.test.d.ts +2 -0
- package/dist/__tests__/meta-config.test.d.ts.map +1 -0
- package/dist/__tests__/play-button.test.d.ts +2 -0
- package/dist/__tests__/play-button.test.d.ts.map +1 -0
- package/dist/__tests__/player-exports.test.d.ts +2 -0
- package/dist/__tests__/player-exports.test.d.ts.map +1 -0
- package/dist/__tests__/player-state.test.d.ts +2 -0
- package/dist/__tests__/player-state.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-controls.test.d.ts +2 -0
- package/dist/__tests__/playlist-controls.test.d.ts.map +1 -0
- package/dist/__tests__/playlist-panel.test.d.ts +2 -0
- package/dist/__tests__/playlist-panel.test.d.ts.map +1 -0
- package/dist/__tests__/playlist.test.d.ts +2 -0
- package/dist/__tests__/playlist.test.d.ts.map +1 -0
- package/dist/__tests__/progressive-adapter.test.d.ts +2 -0
- package/dist/__tests__/progressive-adapter.test.d.ts.map +1 -0
- package/dist/__tests__/quality-selector.test.d.ts +2 -0
- package/dist/__tests__/quality-selector.test.d.ts.map +1 -0
- package/dist/__tests__/renderer.test.d.ts +2 -0
- package/dist/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts +2 -0
- package/dist/__tests__/security/license-key-exposure.test.d.ts.map +1 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts +2 -0
- package/dist/__tests__/security/sanitize-xss.test.d.ts.map +1 -0
- package/dist/__tests__/security/sri-generation.test.d.ts +2 -0
- package/dist/__tests__/security/sri-generation.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts +2 -0
- package/dist/__tests__/security/xss-annotations.test.d.ts.map +1 -0
- package/dist/__tests__/security/xss-captions.test.d.ts +2 -0
- package/dist/__tests__/security/xss-captions.test.d.ts.map +1 -0
- package/dist/__tests__/seek-bar.test.d.ts +2 -0
- package/dist/__tests__/seek-bar.test.d.ts.map +1 -0
- package/dist/__tests__/source-manager.test.d.ts +2 -0
- package/dist/__tests__/source-manager.test.d.ts.map +1 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts +10 -0
- package/dist/__tests__/sprint1-memory-disposal.test.d.ts.map +1 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts +9 -0
- package/dist/__tests__/sprint3-frustum-adaptive.test.d.ts.map +1 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts +18 -0
- package/dist/__tests__/sprint5-bundle-memory.test.d.ts.map +1 -0
- package/dist/__tests__/voice-button.test.d.ts +2 -0
- package/dist/__tests__/voice-button.test.d.ts.map +1 -0
- package/dist/__tests__/voice-manager.test.d.ts +2 -0
- package/dist/__tests__/voice-manager.test.d.ts.map +1 -0
- package/dist/__tests__/volume-control.test.d.ts +2 -0
- package/dist/__tests__/volume-control.test.d.ts.map +1 -0
- package/dist/__tests__/vr-button.test.d.ts +2 -0
- package/dist/__tests__/vr-button.test.d.ts.map +1 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts +2 -0
- package/dist/__tests__/vz-cinema-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-img-element.test.d.ts +2 -0
- package/dist/__tests__/vz-img-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts +2 -0
- package/dist/__tests__/vz-playlist-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-element.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-element.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-img.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-img.test.d.ts.map +1 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts +2 -0
- package/dist/__tests__/vz-tour-portal.test.d.ts.map +1 -0
- package/dist/__tests__/vz-video-element.test.d.ts +2 -0
- package/dist/__tests__/vz-video-element.test.d.ts.map +1 -0
- package/dist/__tests__/watermark-guard.test.d.ts +2 -0
- package/dist/__tests__/watermark-guard.test.d.ts.map +1 -0
- package/dist/__tests__/watermark.test.d.ts +2 -0
- package/dist/__tests__/watermark.test.d.ts.map +1 -0
- package/dist/__tests__/webvtt-parser.test.d.ts +2 -0
- package/dist/__tests__/webvtt-parser.test.d.ts.map +1 -0
- package/dist/__tests__/xr-controller.test.d.ts +2 -0
- package/dist/__tests__/xr-controller.test.d.ts.map +1 -0
- package/dist/__tests__/xr-manager.test.d.ts +2 -0
- package/dist/__tests__/xr-manager.test.d.ts.map +1 -0
- package/dist/analytics/analytics-collector.d.ts +29 -0
- package/dist/analytics/analytics-collector.d.ts.map +1 -0
- package/dist/analytics/gaze-tracker.d.ts +44 -0
- package/dist/analytics/gaze-tracker.d.ts.map +1 -0
- package/dist/analytics/index.d.ts +32 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/annotations/annotation-manager.d.ts +31 -0
- package/dist/annotations/annotation-manager.d.ts.map +1 -0
- package/dist/annotations/annotation-popup.d.ts +21 -0
- package/dist/annotations/annotation-popup.d.ts.map +1 -0
- package/dist/annotations/annotation-sprite.d.ts +10 -0
- package/dist/annotations/annotation-sprite.d.ts.map +1 -0
- package/dist/annotations/index.d.ts +4 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations-C0ugfCn4.js +2158 -0
- package/dist/annotations-C0ugfCn4.js.map +1 -0
- package/dist/audio/ambisonic-renderer.d.ts +36 -0
- package/dist/audio/ambisonic-renderer.d.ts.map +1 -0
- package/dist/audio/audio-manager.d.ts +44 -0
- package/dist/audio/audio-manager.d.ts.map +1 -0
- package/dist/captions/caption-renderer.d.ts +57 -0
- package/dist/captions/caption-renderer.d.ts.map +1 -0
- package/dist/captions/index.d.ts +3 -0
- package/dist/captions/index.d.ts.map +1 -0
- package/dist/captions/webvtt-parser.d.ts +31 -0
- package/dist/captions/webvtt-parser.d.ts.map +1 -0
- package/dist/captions-BP0H2E03.js +274 -0
- package/dist/captions-BP0H2E03.js.map +1 -0
- package/dist/collab-BXPomrS0.js +978 -0
- package/dist/collab-BXPomrS0.js.map +1 -0
- package/dist/collaborative/chat-button.d.ts +22 -0
- package/dist/collaborative/chat-button.d.ts.map +1 -0
- package/dist/collaborative/chat-panel.d.ts +46 -0
- package/dist/collaborative/chat-panel.d.ts.map +1 -0
- package/dist/collaborative/collab-client.d.ts +73 -0
- package/dist/collaborative/collab-client.d.ts.map +1 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts +29 -0
- package/dist/collaborative/gaze-cursor-manager.d.ts.map +1 -0
- package/dist/collaborative/gaze-sender.d.ts +29 -0
- package/dist/collaborative/gaze-sender.d.ts.map +1 -0
- package/dist/collaborative/voice-button.d.ts +25 -0
- package/dist/collaborative/voice-button.d.ts.map +1 -0
- package/dist/collaborative/voice-manager.d.ts +45 -0
- package/dist/collaborative/voice-manager.d.ts.map +1 -0
- package/dist/config/format-registry.d.ts +2 -0
- package/dist/config/format-registry.d.ts.map +1 -0
- package/dist/config/meta-config.d.ts +14 -0
- package/dist/config/meta-config.d.ts.map +1 -0
- package/dist/controls/cc-button.d.ts +24 -0
- package/dist/controls/cc-button.d.ts.map +1 -0
- package/dist/controls/compass.d.ts +15 -0
- package/dist/controls/compass.d.ts.map +1 -0
- package/dist/controls/controls-overlay.d.ts +46 -0
- package/dist/controls/controls-overlay.d.ts.map +1 -0
- package/dist/controls/fullscreen-button.d.ts +16 -0
- package/dist/controls/fullscreen-button.d.ts.map +1 -0
- package/dist/controls/icons.d.ts +23 -0
- package/dist/controls/icons.d.ts.map +1 -0
- package/dist/controls/keyboard-shortcuts.d.ts +21 -0
- package/dist/controls/keyboard-shortcuts.d.ts.map +1 -0
- package/dist/controls/live-indicator.d.ts +17 -0
- package/dist/controls/live-indicator.d.ts.map +1 -0
- package/dist/controls/play-button.d.ts +14 -0
- package/dist/controls/play-button.d.ts.map +1 -0
- package/dist/controls/playlist-controls.d.ts +18 -0
- package/dist/controls/playlist-controls.d.ts.map +1 -0
- package/dist/controls/playlist-panel.d.ts +27 -0
- package/dist/controls/playlist-panel.d.ts.map +1 -0
- package/dist/controls/quality-menu.d.ts +17 -0
- package/dist/controls/quality-menu.d.ts.map +1 -0
- package/dist/controls/seek-bar.d.ts +23 -0
- package/dist/controls/seek-bar.d.ts.map +1 -0
- package/dist/controls/volume-control.d.ts +14 -0
- package/dist/controls/volume-control.d.ts.map +1 -0
- package/dist/controls/vr-button.d.ts +14 -0
- package/dist/controls/vr-button.d.ts.map +1 -0
- package/dist/core/base-element.d.ts +53 -0
- package/dist/core/base-element.d.ts.map +1 -0
- package/dist/core/event-emitter.d.ts +23 -0
- package/dist/core/event-emitter.d.ts.map +1 -0
- package/dist/core/html-element.d.ts +13 -0
- package/dist/core/html-element.d.ts.map +1 -0
- package/dist/core/media-element.d.ts +86 -0
- package/dist/core/media-element.d.ts.map +1 -0
- package/dist/core/player-state.d.ts +63 -0
- package/dist/core/player-state.d.ts.map +1 -0
- package/dist/dash-adapter-tid9ZyhO.js +75 -0
- package/dist/dash-adapter-tid9ZyhO.js.map +1 -0
- package/dist/elements/vz-annotation.d.ts +26 -0
- package/dist/elements/vz-annotation.d.ts.map +1 -0
- package/dist/elements/vz-cinema.d.ts +28 -0
- package/dist/elements/vz-cinema.d.ts.map +1 -0
- package/dist/elements/vz-img.d.ts +27 -0
- package/dist/elements/vz-img.d.ts.map +1 -0
- package/dist/elements/vz-live.d.ts +36 -0
- package/dist/elements/vz-live.d.ts.map +1 -0
- package/dist/elements/vz-playlist.d.ts +74 -0
- package/dist/elements/vz-playlist.d.ts.map +1 -0
- package/dist/elements/vz-tour-img.d.ts +21 -0
- package/dist/elements/vz-tour-img.d.ts.map +1 -0
- package/dist/elements/vz-tour-portal.d.ts +19 -0
- package/dist/elements/vz-tour-portal.d.ts.map +1 -0
- package/dist/elements/vz-tour.d.ts +49 -0
- package/dist/elements/vz-tour.d.ts.map +1 -0
- package/dist/elements/vz-video.d.ts +21 -0
- package/dist/elements/vz-video.d.ts.map +1 -0
- package/dist/hls-adapter-BivH46L_.js +97 -0
- package/dist/hls-adapter-BivH46L_.js.map +1 -0
- package/dist/hotspots/hotspot-interaction.d.ts +23 -0
- package/dist/hotspots/hotspot-interaction.d.ts.map +1 -0
- package/dist/hotspots/hotspot-manager.d.ts +18 -0
- package/dist/hotspots/hotspot-manager.d.ts.map +1 -0
- package/dist/hotspots/hotspot-renderer.d.ts +26 -0
- package/dist/hotspots/hotspot-renderer.d.ts.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/license/feature-gates.d.ts +6 -0
- package/dist/license/feature-gates.d.ts.map +1 -0
- package/dist/license/integrity.d.ts +33 -0
- package/dist/license/integrity.d.ts.map +1 -0
- package/dist/license/license-checker.d.ts +18 -0
- package/dist/license/license-checker.d.ts.map +1 -0
- package/dist/license/master-key.d.ts +14 -0
- package/dist/license/master-key.d.ts.map +1 -0
- package/dist/license/watermark-guard.d.ts +24 -0
- package/dist/license/watermark-guard.d.ts.map +1 -0
- package/dist/license/watermark.d.ts +19 -0
- package/dist/license/watermark.d.ts.map +1 -0
- package/dist/register-CwnmiGEs.js +5740 -0
- package/dist/register-CwnmiGEs.js.map +1 -0
- package/dist/register.d.ts +6 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +5 -0
- package/dist/register.js.map +1 -0
- package/dist/renderer/camera-controller.d.ts +75 -0
- package/dist/renderer/camera-controller.d.ts.map +1 -0
- package/dist/renderer/projections/cinema-projection.d.ts +32 -0
- package/dist/renderer/projections/cinema-projection.d.ts.map +1 -0
- package/dist/renderer/projections/cubemap-projection.d.ts +34 -0
- package/dist/renderer/projections/cubemap-projection.d.ts.map +1 -0
- package/dist/renderer/projections/eac-projection.d.ts +35 -0
- package/dist/renderer/projections/eac-projection.d.ts.map +1 -0
- package/dist/renderer/projections/equirect-projection.d.ts +27 -0
- package/dist/renderer/projections/equirect-projection.d.ts.map +1 -0
- package/dist/renderer/projections/fisheye-projection.d.ts +28 -0
- package/dist/renderer/projections/fisheye-projection.d.ts.map +1 -0
- package/dist/renderer/projections/flat-projection.d.ts +32 -0
- package/dist/renderer/projections/flat-projection.d.ts.map +1 -0
- package/dist/renderer/projections/projection.d.ts +18 -0
- package/dist/renderer/projections/projection.d.ts.map +1 -0
- package/dist/renderer/renderer.d.ts +72 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/shaders/eac.glsl.d.ts +12 -0
- package/dist/renderer/shaders/eac.glsl.d.ts.map +1 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts +22 -0
- package/dist/renderer/shaders/fisheye.glsl.d.ts.map +1 -0
- package/dist/spatial-BeadwNJA.js +146 -0
- package/dist/spatial-BeadwNJA.js.map +1 -0
- package/dist/sri.json +12 -0
- package/dist/streaming/adapter-factory.d.ts +8 -0
- package/dist/streaming/adapter-factory.d.ts.map +1 -0
- package/dist/streaming/dash-adapter.d.ts +21 -0
- package/dist/streaming/dash-adapter.d.ts.map +1 -0
- package/dist/streaming/hls-adapter.d.ts +26 -0
- package/dist/streaming/hls-adapter.d.ts.map +1 -0
- package/dist/streaming/progressive-adapter.d.ts +18 -0
- package/dist/streaming/progressive-adapter.d.ts.map +1 -0
- package/dist/streaming/quality-selector.d.ts +25 -0
- package/dist/streaming/quality-selector.d.ts.map +1 -0
- package/dist/streaming/source-manager.d.ts +46 -0
- package/dist/streaming/source-manager.d.ts.map +1 -0
- package/dist/streaming/types.d.ts +25 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/styles/controls.d.ts +15 -0
- package/dist/styles/controls.d.ts.map +1 -0
- package/dist/three-Bci7aSeI.js +20078 -0
- package/dist/three-Bci7aSeI.js.map +1 -0
- package/dist/utils/fullscreen.d.ts +6 -0
- package/dist/utils/fullscreen.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +19 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/vizor.js +113 -0
- package/dist/vizor.js.map +1 -0
- package/dist/xr/xr-controller.d.ts +27 -0
- package/dist/xr/xr-controller.d.ts.map +1 -0
- package/dist/xr/xr-manager.d.ts +43 -0
- package/dist/xr/xr-manager.d.ts.map +1 -0
- package/package.json +94 -0
package/dist/sri.json
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"annotations-C0ugfCn4.js": "sha384-9DjwKv8po5gIDBHcBwt+TSgTYO/o10AkCAh/iNQVCP5VuLdPIbO5CfTzyo6Awbg5",
|
|
3
|
+
"captions-BP0H2E03.js": "sha384-y6Iz8yboRE1mMSVAmIDjw1zk90owOOIiOIkKO6o06+yYYvHiN3SS0eAgfmrju5M0",
|
|
4
|
+
"collab-BXPomrS0.js": "sha384-CCTDHN4a2l8g+NwuPET2SYrhBAa45IJ3TpjbzgWs+bJ648+jtIbir/KatUB0BL2n",
|
|
5
|
+
"dash-adapter-tid9ZyhO.js": "sha384-U9b0p79ZVRck/PipwaHFr0eV3k1jZ7Syw8K+z9yrS3BkLi4TVmk077k63nUtYKQE",
|
|
6
|
+
"hls-adapter-BivH46L_.js": "sha384-jOBukDUqYuL2pouXVqeORYwec9BaMTvoiLU7L6thrIhSCgypeCmENBbgfirRyoj7",
|
|
7
|
+
"register-CwnmiGEs.js": "sha384-HxozDDmTD20UrMFcKn84HPEAuXFZVnf5in26XgJw4FkaiHoXOwH7a188VLhLQ4Tf",
|
|
8
|
+
"register.js": "sha384-a/u1LFOR/riKc5C0xhFqdhS3p2SAGabZpidZlB0LB5PwJkSp227IbRbrI6npo37S",
|
|
9
|
+
"spatial-BeadwNJA.js": "sha384-HZn7bAj2gWsXmVFl+w/IeQhzEBv5/Aj7XMhkuhnu5/GZ1Kd3RdhgTIU+RGQzc5fU",
|
|
10
|
+
"three-Bci7aSeI.js": "sha384-WT17P68Bk5PWfaSGPpgMiYblkgoKrBcfOLZbjErgGMIvbwZrcWE7p/Fr9+FNR2Dy",
|
|
11
|
+
"vizor.js": "sha384-amgJdCAcF1V7r/J1J6kaJPCMXFaMoDwApArfErpyRDqPenhfH2CochC3ztohkjip"
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IStreamingAdapter, AdapterType } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a streaming adapter by type.
|
|
4
|
+
* HLS and DASH adapters are lazy-loaded via dynamic import
|
|
5
|
+
* to keep the core bundle small.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createAdapter(type: AdapterType): Promise<IStreamingAdapter>;
|
|
8
|
+
//# sourceMappingURL=adapter-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-factory.d.ts","sourceRoot":"","sources":["../../src/streaming/adapter-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGjE;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAcjF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
import type { IStreamingAdapter } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* DASH streaming adapter wrapping dashjs.
|
|
5
|
+
* Lazy-loaded via dynamic import — only included in the bundle
|
|
6
|
+
* when a DASH source is detected.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DashAdapter implements IStreamingAdapter {
|
|
9
|
+
private videoElement;
|
|
10
|
+
private player;
|
|
11
|
+
private _isAttached;
|
|
12
|
+
private levels;
|
|
13
|
+
get supportsABR(): boolean;
|
|
14
|
+
get isAttached(): boolean;
|
|
15
|
+
attach(videoElement: HTMLVideoElement): void;
|
|
16
|
+
load(url: string): Promise<void>;
|
|
17
|
+
getQualityLevels(): QualityLevel[];
|
|
18
|
+
setQualityLevel(index: number): void;
|
|
19
|
+
destroy(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dash-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dash-adapter.d.ts","sourceRoot":"","sources":["../../src/streaming/dash-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,WAAY,YAAW,iBAAiB;IACnD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAsB;IAEpC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,MAAM,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAKtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCtC,gBAAgB,IAAI,YAAY,EAAE;IAIlC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAoBpC,OAAO,IAAI,IAAI;CAShB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
import type { IStreamingAdapter } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* HLS streaming adapter wrapping hls.js.
|
|
5
|
+
* Lazy-loaded via dynamic import — only included in the bundle
|
|
6
|
+
* when an HLS source is detected.
|
|
7
|
+
*
|
|
8
|
+
* Falls back to native HLS on Safari (no hls.js needed).
|
|
9
|
+
*/
|
|
10
|
+
export declare class HlsAdapter implements IStreamingAdapter {
|
|
11
|
+
private videoElement;
|
|
12
|
+
private hls;
|
|
13
|
+
private _isAttached;
|
|
14
|
+
private _isNative;
|
|
15
|
+
private levels;
|
|
16
|
+
/** Enable low-latency mode for live streams */
|
|
17
|
+
lowLatencyMode: boolean;
|
|
18
|
+
get supportsABR(): boolean;
|
|
19
|
+
get isAttached(): boolean;
|
|
20
|
+
attach(videoElement: HTMLVideoElement): void;
|
|
21
|
+
load(url: string): Promise<void>;
|
|
22
|
+
getQualityLevels(): QualityLevel[];
|
|
23
|
+
setQualityLevel(index: number): void;
|
|
24
|
+
destroy(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=hls-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hls-adapter.d.ts","sourceRoot":"","sources":["../../src/streaming/hls-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,iBAAiB;IAClD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAsB;IAEpC,+CAA+C;IAC/C,cAAc,UAAS;IAEvB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,MAAM,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAKtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsEtC,gBAAgB,IAAI,YAAY,EAAE;IAIlC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMpC,OAAO,IAAI,IAAI;CAUhB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
import type { IStreamingAdapter } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Progressive MP4/WebM adapter.
|
|
5
|
+
* Sets the video source directly — no adaptive bitrate.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ProgressiveAdapter implements IStreamingAdapter {
|
|
8
|
+
private videoElement;
|
|
9
|
+
private _isAttached;
|
|
10
|
+
get supportsABR(): boolean;
|
|
11
|
+
get isAttached(): boolean;
|
|
12
|
+
attach(videoElement: HTMLVideoElement): void;
|
|
13
|
+
load(url: string): void;
|
|
14
|
+
getQualityLevels(): QualityLevel[];
|
|
15
|
+
setQualityLevel(_index: number): void;
|
|
16
|
+
destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=progressive-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progressive-adapter.d.ts","sourceRoot":"","sources":["../../src/streaming/progressive-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,WAAW,CAAS;IAE5B,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,MAAM,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAK5C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKvB,gBAAgB,IAAI,YAAY,EAAE;IAIlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
import type { PlayerState } from '../core/player-state.js';
|
|
3
|
+
import type { IStreamingAdapter } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Coordinates quality switching between the streaming adapter and PlayerState.
|
|
6
|
+
* Provides a clean API for the quality menu control.
|
|
7
|
+
*/
|
|
8
|
+
export declare class QualitySelector {
|
|
9
|
+
private adapter;
|
|
10
|
+
private state;
|
|
11
|
+
constructor(state: PlayerState);
|
|
12
|
+
/** Connect to the current streaming adapter */
|
|
13
|
+
setAdapter(adapter: IStreamingAdapter): void;
|
|
14
|
+
/** Get available quality levels */
|
|
15
|
+
getLevels(): QualityLevel[];
|
|
16
|
+
/** Set quality by index (-1 = auto) */
|
|
17
|
+
setLevel(index: number): void;
|
|
18
|
+
/** Whether auto quality (ABR) is active */
|
|
19
|
+
get isAuto(): boolean;
|
|
20
|
+
/** Whether the adapter supports quality switching */
|
|
21
|
+
get supportsQuality(): boolean;
|
|
22
|
+
/** Sync state from adapter */
|
|
23
|
+
private syncState;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=quality-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-selector.d.ts","sourceRoot":"","sources":["../../src/streaming/quality-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,EAAE,WAAW;IAI9B,+CAA+C;IAC/C,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK5C,mCAAmC;IACnC,SAAS,IAAI,YAAY,EAAE;IAI3B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAY7B,2CAA2C;IAC3C,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,qDAAqD;IACrD,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,8BAA8B;IAC9B,OAAO,CAAC,SAAS;CAWlB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ParsedSource, QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
import type { PlayerState } from '../core/player-state.js';
|
|
3
|
+
import type { VzEventEmitter } from '../core/event-emitter.js';
|
|
4
|
+
/**
|
|
5
|
+
* Manages source selection and streaming adapter lifecycle.
|
|
6
|
+
*
|
|
7
|
+
* Responsibilities:
|
|
8
|
+
* - Detect MIME type to determine adapter type (progressive/hls/dash)
|
|
9
|
+
* - Instantiate the correct adapter via lazy-loaded factory
|
|
10
|
+
* - Coordinate quality switching with PlayerState
|
|
11
|
+
* - Handle multi-source progressive switching (preserves currentTime)
|
|
12
|
+
*/
|
|
13
|
+
export declare class SourceManager {
|
|
14
|
+
private adapter;
|
|
15
|
+
private videoElement;
|
|
16
|
+
private state;
|
|
17
|
+
private events;
|
|
18
|
+
private sources;
|
|
19
|
+
/**
|
|
20
|
+
* Load sources into the video element using the appropriate adapter.
|
|
21
|
+
*/
|
|
22
|
+
loadSources(sources: ParsedSource[], videoElement: HTMLVideoElement, state: PlayerState, events: VzEventEmitter): Promise<void>;
|
|
23
|
+
/** Get available quality levels from the current adapter */
|
|
24
|
+
getQualityLevels(): QualityLevel[];
|
|
25
|
+
/** Set quality level (-1 for auto) */
|
|
26
|
+
setQualityLevel(index: number): void;
|
|
27
|
+
/** Whether the current adapter supports ABR */
|
|
28
|
+
get supportsABR(): boolean;
|
|
29
|
+
/** Switch to a different progressive source by index (preserves currentTime) */
|
|
30
|
+
switchSource(index: number): void;
|
|
31
|
+
/** Dispose the adapter and release resources */
|
|
32
|
+
dispose(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Select the best source and adapter type.
|
|
35
|
+
* Prefers adaptive (HLS/DASH) over progressive when available.
|
|
36
|
+
*/
|
|
37
|
+
private selectSource;
|
|
38
|
+
/** Detect adapter type from source MIME type or URL extension */
|
|
39
|
+
private detectAdapterType;
|
|
40
|
+
/**
|
|
41
|
+
* Poll for quality levels after a short delay.
|
|
42
|
+
* Adaptive adapters need time to parse the manifest before levels are available.
|
|
43
|
+
*/
|
|
44
|
+
private pollQualityLevels;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=source-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-manager.d.ts","sourceRoot":"","sources":["../../src/streaming/source-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;;;;;;;GAQG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,OAAO,CAAsB;IAErC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,YAAY,EAAE,EACvB,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAuBhB,4DAA4D;IAC5D,gBAAgB,IAAI,YAAY,EAAE;IAIlC,sCAAsC;IACtC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBpC,+CAA+C;IAC/C,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,gFAAgF;IAChF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBjC,gDAAgD;IAChD,OAAO,IAAI,IAAI;IASf;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,iEAAiE;IACjE,OAAO,CAAC,iBAAiB;IAmBzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAoB1B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { QualityLevel } from '@vizor-vr/shared';
|
|
2
|
+
/** Adapter type identifier */
|
|
3
|
+
export type AdapterType = 'progressive' | 'hls' | 'dash';
|
|
4
|
+
/**
|
|
5
|
+
* Common interface for all streaming adapters.
|
|
6
|
+
* Each adapter wraps a specific playback technology
|
|
7
|
+
* (progressive MP4, hls.js, dashjs) behind a uniform API.
|
|
8
|
+
*/
|
|
9
|
+
export interface IStreamingAdapter {
|
|
10
|
+
/** Attach the adapter to a <video> element */
|
|
11
|
+
attach(videoElement: HTMLVideoElement): void;
|
|
12
|
+
/** Load a source URL */
|
|
13
|
+
load(url: string): void;
|
|
14
|
+
/** Get available quality levels (empty for progressive) */
|
|
15
|
+
getQualityLevels(): QualityLevel[];
|
|
16
|
+
/** Set active quality level (-1 for auto ABR) */
|
|
17
|
+
setQualityLevel(index: number): void;
|
|
18
|
+
/** Whether this adapter supports ABR */
|
|
19
|
+
readonly supportsABR: boolean;
|
|
20
|
+
/** Whether the adapter is currently attached */
|
|
21
|
+
readonly isAttached: boolean;
|
|
22
|
+
/** Destroy the adapter and release resources */
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/streaming/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,MAAM,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE7C,wBAAwB;IACxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,2DAA2D;IAC3D,gBAAgB,IAAI,YAAY,EAAE,CAAC;IAEnC,iDAAiD;IACjD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,wCAAwC;IACxC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B,gDAAgD;IAChD,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Controls CSS injected into the shadow DOM.
|
|
3
|
+
* Vimeo-inspired design: thin progress bar, subtle gradient,
|
|
4
|
+
* frosted glass big play, smooth transitions.
|
|
5
|
+
*
|
|
6
|
+
* CSS custom properties for theming:
|
|
7
|
+
* --vz-primary Accent color (default: #f43f5e)
|
|
8
|
+
* --vz-controls-bg Control bar gradient end (default: rgba(0,0,0,0.6))
|
|
9
|
+
* --vz-progress-height Progress bar resting height (default: 3px)
|
|
10
|
+
* --vz-progress-color Progress fill color (default: --vz-primary)
|
|
11
|
+
* --vz-controls-transition Fade duration (default: 0.3s)
|
|
12
|
+
* --vz-button-size Button hit-area size (default: 36px)
|
|
13
|
+
*/
|
|
14
|
+
export declare const CONTROLS_CSS = "\n /* ------------------------------------------------------------------ */\n /* Layout \u2014 wrapper + seek above button row */\n /* ------------------------------------------------------------------ */\n\n .vz-controls-wrapper {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 10;\n user-select: none;\n -webkit-user-select: none;\n transition: opacity var(--vz-controls-transition, 0.3s) ease,\n transform 0.2s ease;\n }\n\n .vz-controls-wrapper.hidden {\n opacity: 0;\n pointer-events: none;\n transform: translateY(4px);\n }\n\n /* Progress bar sits above the button row */\n .vz-seek-row {\n position: relative;\n width: 100%;\n padding: 0 12px;\n cursor: pointer;\n z-index: 11;\n }\n\n /* Button row */\n .vz-controls {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 4px 8px 6px;\n background: linear-gradient(transparent, var(--vz-controls-bg, rgba(0, 0, 0, 0.6)));\n backdrop-filter: blur(4px);\n -webkit-backdrop-filter: blur(4px);\n color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 13px;\n }\n\n .vz-controls-left {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n }\n\n .vz-controls-center {\n flex: 1;\n min-width: 0;\n }\n\n .vz-controls-right {\n display: flex;\n align-items: center;\n gap: 2px;\n flex-shrink: 0;\n }\n\n /* ------------------------------------------------------------------ */\n /* Buttons */\n /* ------------------------------------------------------------------ */\n\n .vz-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--vz-button-size, 36px);\n height: var(--vz-button-size, 36px);\n padding: 0;\n border: none;\n border-radius: 50%;\n background: transparent;\n color: #fff;\n cursor: pointer;\n flex-shrink: 0;\n transition: opacity 0.15s, transform 0.15s;\n opacity: 0.9;\n }\n\n .vz-btn:hover {\n opacity: 1;\n transform: scale(1.1);\n }\n\n .vz-btn:active {\n transform: scale(0.95);\n }\n\n .vz-btn:focus-visible {\n outline: 2px solid var(--vz-primary, #f43f5e);\n outline-offset: 2px;\n }\n\n .vz-btn svg {\n width: 20px;\n height: 20px;\n fill: currentColor;\n }\n\n /* ------------------------------------------------------------------ */\n /* Seek / Progress bar */\n /* ------------------------------------------------------------------ */\n\n .vz-seek-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n height: 18px;\n cursor: pointer;\n }\n\n .vz-seek-track {\n position: relative;\n width: 100%;\n height: var(--vz-progress-height, 3px);\n background: rgba(255, 255, 255, 0.2);\n border-radius: 99px;\n overflow: visible;\n transition: height 0.15s ease;\n }\n\n .vz-seek-container:hover .vz-seek-track {\n height: 5px;\n }\n\n .vz-seek-buffered {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0.25),\n rgba(255, 255, 255, 0.35)\n );\n border-radius: 99px;\n }\n\n .vz-seek-played {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background: var(--vz-progress-color, var(--vz-primary, #f43f5e));\n border-radius: 99px;\n box-shadow: 0 0 8px rgba(244, 63, 94, 0.4);\n box-shadow: 0 0 8px color-mix(in srgb, var(--vz-primary, #f43f5e) 40%, transparent);\n }\n\n .vz-seek-thumb {\n position: absolute;\n top: 50%;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #fff;\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);\n transform: translate(-50%, -50%) scale(0);\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n pointer-events: none;\n }\n\n .vz-seek-container:hover .vz-seek-thumb {\n transform: translate(-50%, -50%) scale(1);\n box-shadow: 0 0 6px rgba(244, 63, 94, 0.5);\n box-shadow: 0 0 6px color-mix(in srgb, var(--vz-primary, #f43f5e) 50%, transparent);\n }\n\n .vz-seek-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n opacity: 0;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n }\n\n /* Hover time tooltip */\n .vz-seek-tooltip {\n position: absolute;\n bottom: 100%;\n margin-bottom: 6px;\n padding: 3px 7px;\n background: var(--vz-secondary, rgba(0, 0, 0, 0.85));\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n color: #fff;\n font-size: 12px;\n font-variant-numeric: tabular-nums;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n border-radius: 4px;\n white-space: nowrap;\n pointer-events: none;\n transform: translateX(-50%);\n opacity: 0;\n transition: opacity 0.12s;\n }\n\n .vz-seek-container:hover .vz-seek-tooltip {\n opacity: 1;\n }\n\n .vz-time {\n font-size: 12px;\n font-weight: 400;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n padding: 0 6px;\n flex-shrink: 0;\n opacity: 0.9;\n letter-spacing: 0.02em;\n }\n\n /* ------------------------------------------------------------------ */\n /* Volume \u2014 horizontal slide-out on hover */\n /* ------------------------------------------------------------------ */\n\n .vz-volume {\n display: flex;\n align-items: center;\n gap: 0;\n overflow: hidden;\n }\n\n .vz-volume-slider-wrap {\n width: 0;\n overflow: hidden;\n transition: width 0.2s ease;\n }\n\n .vz-volume:hover .vz-volume-slider-wrap {\n width: 64px;\n }\n\n .vz-volume-slider {\n width: 60px;\n height: 4px;\n margin: 0 4px;\n -webkit-appearance: none;\n appearance: none;\n background: rgba(255, 255, 255, 0.3);\n border-radius: 99px;\n outline: none;\n cursor: pointer;\n }\n\n .vz-volume-slider::-webkit-slider-thumb {\n -webkit-appearance: none;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: #fff;\n cursor: pointer;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);\n }\n\n .vz-volume-slider::-moz-range-thumb {\n width: 12px;\n height: 12px;\n border: none;\n border-radius: 50%;\n background: #fff;\n cursor: pointer;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);\n }\n\n /* ------------------------------------------------------------------ */\n /* Quality menu */\n /* ------------------------------------------------------------------ */\n\n .vz-quality-menu {\n position: relative;\n }\n\n .vz-quality-dropdown {\n position: absolute;\n bottom: 100%;\n right: 0;\n margin-bottom: 8px;\n background: var(--vz-secondary, rgba(20, 20, 30, 0.95));\n backdrop-filter: blur(16px) saturate(1.3);\n -webkit-backdrop-filter: blur(16px) saturate(1.3);\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n padding: 4px 0;\n min-width: 120px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.04);\n display: none;\n z-index: 20;\n }\n\n .vz-quality-dropdown.open {\n display: block;\n }\n\n .vz-quality-option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n cursor: pointer;\n font-size: 13px;\n color: rgba(255, 255, 255, 0.7);\n white-space: nowrap;\n transition: color 0.12s, background 0.12s;\n }\n\n .vz-quality-option:hover {\n background: rgba(244, 63, 94, 0.08);\n background: color-mix(in srgb, var(--vz-primary, #f43f5e) 8%, transparent);\n color: #fff;\n }\n\n .vz-quality-option.active {\n color: var(--vz-primary, #f43f5e);\n }\n\n .vz-quality-check {\n width: 16px;\n font-size: 14px;\n }\n\n /* ------------------------------------------------------------------ */\n /* Compass */\n /* ------------------------------------------------------------------ */\n\n .vz-compass {\n position: relative;\n }\n\n .vz-compass svg {\n fill: none;\n stroke: currentColor;\n transition: transform 0.1s ease-out;\n }\n\n /* ------------------------------------------------------------------ */\n /* Loading spinner \u2014 CSS ring */\n /* ------------------------------------------------------------------ */\n\n .vz-loading {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 44px;\n height: 44px;\n z-index: 5;\n pointer-events: none;\n }\n\n .vz-loading-spinner {\n width: 100%;\n height: 100%;\n border: 2.5px solid rgba(255, 255, 255, 0.15);\n border-top-color: var(--vz-primary, #f43f5e);\n border-radius: 50%;\n animation: vz-spin 0.75s linear infinite;\n }\n\n .vz-loading.hidden {\n display: none;\n }\n\n @keyframes vz-spin {\n to { transform: rotate(360deg); }\n }\n\n /* ------------------------------------------------------------------ */\n /* Big play button \u2014 frosted glass */\n /* ------------------------------------------------------------------ */\n\n .vz-big-play {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 68px;\n height: 68px;\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 50%;\n background: rgba(15, 10, 20, 0.4);\n backdrop-filter: blur(12px) saturate(1.2);\n -webkit-backdrop-filter: blur(12px) saturate(1.2);\n color: #fff;\n cursor: pointer;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.25s ease, transform 0.25s ease, opacity 0.25s ease, box-shadow 0.25s ease;\n opacity: 1;\n box-shadow: 0 0 20px rgba(244, 63, 94, 0.15);\n box-shadow: 0 0 20px color-mix(in srgb, var(--vz-primary, #f43f5e) 15%, transparent);\n }\n\n .vz-big-play:hover {\n background: rgba(15, 10, 20, 0.55);\n transform: translate(-50%, -50%) scale(1.08);\n box-shadow: 0 0 30px rgba(244, 63, 94, 0.25);\n box-shadow: 0 0 30px color-mix(in srgb, var(--vz-primary, #f43f5e) 25%, transparent);\n }\n\n .vz-big-play.hidden {\n opacity: 0;\n pointer-events: none;\n transform: translate(-50%, -50%) scale(0.85);\n }\n\n .vz-big-play svg {\n width: 30px;\n height: 30px;\n fill: currentColor;\n margin-left: 3px; /* visual centering for play triangle */\n }\n\n /* ------------------------------------------------------------------ */\n /* Watermark */\n /* ------------------------------------------------------------------ */\n\n .vz-watermark {\n position: absolute;\n bottom: 48px;\n right: 12px;\n z-index: 15;\n pointer-events: auto;\n }\n\n /* ------------------------------------------------------------------ */\n /* Controls behavior variants */\n /* ------------------------------------------------------------------ */\n\n /* \"always\" mode \u2014 never hide */\n :host([controls-behavior=\"always\"]) .vz-controls-wrapper {\n opacity: 1 !important;\n pointer-events: auto !important;\n transform: none !important;\n }\n\n /* \"minimal\" mode \u2014 only thin progress bar always visible */\n :host([controls-behavior=\"minimal\"]) .vz-controls-wrapper.hidden .vz-controls {\n opacity: 0;\n pointer-events: none;\n }\n\n :host([controls-behavior=\"minimal\"]) .vz-controls-wrapper.hidden .vz-seek-row {\n opacity: 1;\n pointer-events: auto;\n }\n\n :host([controls-behavior=\"minimal\"]) .vz-controls-wrapper.hidden {\n opacity: 1;\n pointer-events: auto;\n transform: none;\n }\n\n /* ------------------------------------------------------------------ */\n /* Live indicator */\n /* ------------------------------------------------------------------ */\n\n .vz-live-indicator {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 0 8px;\n cursor: pointer;\n flex-shrink: 0;\n transition: opacity 0.2s;\n user-select: none;\n }\n\n .vz-live-indicator:hover {\n opacity: 1;\n }\n\n .vz-live-dot {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n }\n\n .vz-live-dot svg {\n width: 10px;\n height: 10px;\n }\n\n .vz-live-dot.at-edge {\n color: #ef4444;\n animation: vz-live-pulse 2s ease-in-out infinite;\n }\n\n .vz-live-dot.behind {\n color: #6b7280;\n animation: none;\n }\n\n .vz-live-label {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n color: rgba(255, 255, 255, 0.9);\n }\n\n @keyframes vz-live-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n }\n\n /* ------------------------------------------------------------------ */\n /* Caption overlay (HUD) */\n /* ------------------------------------------------------------------ */\n\n .vz-caption-overlay {\n position: absolute;\n bottom: 60px;\n left: 50%;\n transform: translateX(-50%);\n max-width: 80%;\n padding: 4px 12px;\n background: rgba(0, 0, 0, 0.75);\n border-radius: 4px;\n color: #fff;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 16px;\n line-height: 1.4;\n text-align: center;\n z-index: 12;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.15s ease;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n\n .vz-caption-overlay.visible {\n opacity: 1;\n }\n\n /* ------------------------------------------------------------------ */\n /* CC button & dropdown */\n /* ------------------------------------------------------------------ */\n\n .vz-cc-menu {\n position: relative;\n }\n\n .vz-cc-btn.active {\n color: var(--vz-primary, #f43f5e);\n opacity: 1;\n }\n\n .vz-cc-dropdown {\n position: absolute;\n bottom: 100%;\n right: 0;\n margin-bottom: 8px;\n background: var(--vz-secondary, rgba(20, 20, 30, 0.95));\n backdrop-filter: blur(16px) saturate(1.3);\n -webkit-backdrop-filter: blur(16px) saturate(1.3);\n border: 1px solid rgba(255, 255, 255, 0.06);\n border-radius: 8px;\n padding: 4px 0;\n min-width: 120px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.04);\n display: none;\n z-index: 20;\n }\n\n .vz-cc-dropdown.open {\n display: block;\n }\n\n .vz-cc-option {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n cursor: pointer;\n font-size: 13px;\n color: rgba(255, 255, 255, 0.7);\n white-space: nowrap;\n transition: color 0.12s, background 0.12s;\n }\n\n .vz-cc-option:hover {\n background: rgba(244, 63, 94, 0.08);\n background: color-mix(in srgb, var(--vz-primary, #f43f5e) 8%, transparent);\n color: #fff;\n }\n\n .vz-cc-option.active {\n color: var(--vz-primary, #f43f5e);\n }\n\n .vz-cc-check {\n width: 16px;\n font-size: 14px;\n }\n\n /* ------------------------------------------------------------------ */\n /* Chat badge */\n /* ------------------------------------------------------------------ */\n\n .vz-chat-badge {\n position: absolute;\n top: 2px;\n right: 2px;\n min-width: 16px;\n height: 16px;\n border-radius: 8px;\n background: #ef4444;\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 4px;\n pointer-events: none;\n line-height: 1;\n }\n\n /* ------------------------------------------------------------------ */\n /* Responsive */\n /* ------------------------------------------------------------------ */\n\n @media (max-width: 400px) {\n .vz-volume-slider-wrap,\n .vz-volume-slider {\n display: none;\n }\n }\n";
|
|
15
|
+
//# sourceMappingURL=controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../src/styles/controls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,01gBAwoBxB,CAAC"}
|