@cloudflare/realtimekit-ui 1.0.4 → 1.0.5-staging.2

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 (31) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/realtimekit-ui.cjs.js +1 -1
  4. package/dist/cjs/rtk-avatar_54.cjs.entry.js +1 -1
  5. package/dist/cjs/rtk-livestream-indicator_3.cjs.entry.js +101 -9
  6. package/dist/collection/components/rtk-dialog/rtk-dialog.css +9 -1
  7. package/dist/collection/components/rtk-livestream-player/rtk-livestream-player.css +66 -2
  8. package/dist/collection/components/rtk-livestream-player/rtk-livestream-player.js +104 -9
  9. package/dist/components/{p-734d61ed.js → p-1745c048.js} +105 -10
  10. package/dist/components/{p-aaaa2ffd.js → p-1d624be9.js} +3 -3
  11. package/dist/components/{p-750d5890.js → p-7960f355.js} +1 -1
  12. package/dist/components/{p-72ca9fd3.js → p-8f513cbb.js} +1 -1
  13. package/dist/components/{p-431bde35.js → p-cb12ef1a.js} +1 -1
  14. package/dist/components/rtk-channel-header.js +1 -1
  15. package/dist/components/rtk-chat.js +1 -1
  16. package/dist/components/rtk-dialog-manager.js +1 -1
  17. package/dist/components/rtk-dialog.js +1 -1
  18. package/dist/components/rtk-grid.js +1 -1
  19. package/dist/components/rtk-livestream-player.js +1 -1
  20. package/dist/components/rtk-meeting.js +4 -4
  21. package/dist/components/rtk-participants-audio.js +1 -1
  22. package/dist/docs/docs-components.json +1 -1
  23. package/dist/esm/loader.js +103 -11
  24. package/dist/esm/realtimekit-ui.js +1 -1
  25. package/dist/esm/rtk-avatar_54.entry.js +1 -1
  26. package/dist/esm/rtk-livestream-indicator_3.entry.js +101 -9
  27. package/dist/realtimekit-ui/{p-65830fdd.entry.js → p-31af32f0.entry.js} +1 -1
  28. package/dist/realtimekit-ui/{p-066ac543.entry.js → p-617e5efa.entry.js} +1 -1
  29. package/dist/realtimekit-ui/realtimekit-ui.esm.js +1 -1
  30. package/dist/types/components/rtk-livestream-player/rtk-livestream-player.d.ts +11 -0
  31. package/package.json +2 -3
@@ -35616,7 +35616,7 @@ function formatSecondsToHHMMSS(seconds) {
35616
35616
  : `${mins}:${secs.toString().padStart(2, '0')}`;
35617
35617
  }
35618
35618
 
35619
- const rtkLivestreamPlayerCss = ":host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{display:flex;height:100%;max-height:100%;min-height:100%;width:100%;min-width:100%;max-width:100%;border-radius:var(--rtk-border-radius-md, 8px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity))}.player-container{position:relative;margin-left:var(--rtk-space-4, 16px);margin-right:var(--rtk-space-4, 16px);margin-top:var(--rtk-space-4, 16px);margin-bottom:var(--rtk-space-0, 0px);display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-md, 8px)}.loader{position:absolute;z-index:10;height:100%;width:100%;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));display:flex;flex-direction:column;align-items:center;justify-content:center}p{margin-top:var(--rtk-space-1, 4px);margin-bottom:var(--rtk-space-1, 4px);font-size:16px;color:rgb(var(--rtk-colors-text-700, 255 255 255 / 0.64))}.unmute-popup{position:absolute;z-index:30 !important;display:flex;width:var(--rtk-space-72, 288px);flex-direction:column;border-radius:var(--rtk-border-radius-md, 8px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity));padding:var(--rtk-space-4, 16px);text-align:center;max-width:70%}.unmute-popup h3{margin:var(--rtk-space-0, 0px);font-size:16px;font-weight:500}.unmute-popup p{margin-top:var(--rtk-space-3, 12px);margin-bottom:var(--rtk-space-3, 12px);font-size:14px}.control-bar{position:absolute;bottom:0;left:16px;right:16px;display:flex;height:auto;justify-content:space-between;align-items:center;padding:12px 16px;z-index:30;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));border-radius:6px;border-radius:var(--rtk-border-radius-md, 8px);background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / 0.8)}.timings{color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)))}.control-btn{border:none;margin-right:var(--rtk-space-2, 8px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)));cursor:pointer;font-size:24px;height:30px;width:30px}.fullscreen-btn{margin-right:20px;height:30px}.control-btn:hover{opacity:0.8}.control-btn:focus{outline:none}.control-groups{display:flex;align-items:center;justify-content:space-around}#livestream-video,.livestream-video{position:absolute;top:0;left:0;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;min-width:100% !important;min-height:100% !important;-o-object-fit:fill !important;object-fit:fill !important;z-index:10;border-radius:var(--rtk-border-radius-md, 8px);border-width:0px}:host:not(:fullscreen) .video-container{padding:16px 16px 0 16px}:host(:fullscreen) .video-container,:host(:-webkit-full-screen) .video-container,:host(:-moz-full-screen) .video-container{padding:0}.level-select{border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)));border:none;padding:5px 10px;font-size:14px;height:30px;cursor:pointer;border-radius:5px;margin-right:10px}.level-select:focus{outline:none}.level-select option{border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)))}.volume-control-holder{display:flex;justify-content:center;align-items:center}";
35619
+ const rtkLivestreamPlayerCss = ":host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{display:flex;height:100%;max-height:100%;min-height:100%;width:100%;min-width:100%;max-width:100%;border-radius:var(--rtk-border-radius-md, 8px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity))}.player-container{position:relative;margin-left:var(--rtk-space-4, 16px);margin-right:var(--rtk-space-4, 16px);margin-top:var(--rtk-space-4, 16px);margin-bottom:var(--rtk-space-0, 0px);display:flex;flex-grow:1;align-items:center;justify-content:center;border-radius:var(--rtk-border-radius-md, 8px)}.loader{position:absolute;z-index:10;height:100%;width:100%;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));display:flex;flex-direction:column;align-items:center;justify-content:center}p{margin-top:var(--rtk-space-1, 4px);margin-bottom:var(--rtk-space-1, 4px);font-size:16px;color:rgb(var(--rtk-colors-text-700, 255 255 255 / 0.64))}.unmute-popup{position:absolute;z-index:30 !important;display:flex;width:var(--rtk-space-72, 288px);flex-direction:column;border-radius:var(--rtk-border-radius-md, 8px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-800, 30 30 30) / var(--tw-bg-opacity));padding:var(--rtk-space-4, 16px);text-align:center;max-width:70%}.unmute-popup h3{margin:var(--rtk-space-0, 0px);font-size:16px;font-weight:500}.unmute-popup p{margin-top:var(--rtk-space-3, 12px);margin-bottom:var(--rtk-space-3, 12px);font-size:14px}.control-bar{position:absolute;bottom:0;left:16px;right:16px;display:flex;height:auto;align-items:center;padding:12px 16px;z-index:30;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / var(--tw-bg-opacity));border-radius:6px;border-radius:var(--rtk-border-radius-md, 8px);background-color:rgba(var(--rtk-colors-background-900, 26 26 26) / 0.8);gap:12px}.timings{color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)))}.control-btn{border:none;margin-right:var(--rtk-space-2, 8px);border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)));cursor:pointer;font-size:24px;height:30px;width:30px}.fullscreen-btn{margin-right:20px;height:30px}.control-btn:hover{opacity:0.8}.control-btn:focus{outline:none}.control-groups{display:flex;align-items:center;gap:12px;flex-shrink:0}#livestream-video,.livestream-video{position:absolute;top:0;left:0;width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;min-width:100% !important;min-height:100% !important;-o-object-fit:fill !important;object-fit:fill !important;z-index:10;border-radius:var(--rtk-border-radius-md, 8px);border-width:0px}:host:not(:fullscreen) .video-container{padding:16px 16px 0 16px}:host(:fullscreen) .video-container,:host(:-webkit-full-screen) .video-container,:host(:-moz-full-screen) .video-container{padding:0}.level-select{border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)));border:none;padding:5px 10px;font-size:14px;height:30px;cursor:pointer;border-radius:5px;margin-right:10px}.level-select:focus{outline:none}.level-select option{border-radius:var(--rtk-border-radius-sm, 4px);--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));color:rgb(var(--rtk-colors-text-on-brand-1000, var(--rtk-colors-text-1000, 255 255 255)))}.volume-control-holder{display:flex;justify-content:center;align-items:center}.seekbar-container{flex:1;min-width:100px;padding:0 12px;display:flex;align-items:center}.seekbar{width:100%;height:20px;cursor:pointer;display:flex;align-items:center}.seekbar-track{position:relative;width:100%;height:4px;border-radius:9999px;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / var(--tw-bg-opacity))}.seekbar-progress{position:absolute;top:0;left:0;height:100%;border-radius:9999px;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));transition:width 0.1s ease}.seekbar-handle{position:absolute;top:50%;width:12px;height:12px;border-radius:9999px;--tw-bg-opacity:1;background-color:rgba(var(--rtk-colors-brand-500, 33 96 253) / var(--tw-bg-opacity));transform:translate(-50%, -50%);transition:left 0.1s ease;opacity:0}.seekbar:hover .seekbar-handle{opacity:1}.seekbar:hover .seekbar-track{height:6px}.seekbar:hover .seekbar-handle{width:14px;height:14px}";
35620
35620
  const RtkLivestreamPlayerStyle0 = rtkLivestreamPlayerCss;
35621
35621
 
35622
35622
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -35650,21 +35650,42 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35650
35650
  this.currentTime = 0;
35651
35651
  this.duration = 0;
35652
35652
  this.hideControls = true;
35653
+ this.isDragging = false;
35654
+ this.seekPosition = 0;
35655
+ this.isSeeking = false;
35653
35656
  this.hideControlsTimeout = null;
35657
+ this.seekingTimeout = null;
35654
35658
  this.livestreamUpdateListener = (state) => {
35655
35659
  this.playbackUrl = this.meeting.livestream.playbackUrl;
35656
35660
  this.livestreamState = state;
35657
35661
  };
35658
35662
  this.updateProgress = () => {
35659
- this.currentTime = this.videoRef.currentTime;
35663
+ // During seeking, avoid updating currentTime to prevent fluctuations
35664
+ if (!this.isSeeking) {
35665
+ this.currentTime = this.videoRef.currentTime;
35666
+ }
35660
35667
  };
35661
35668
  this.updateHlsStatsPeriodically = () => {
35662
- var _a, _b;
35663
- // Total duration is where video is + the latency that is there
35664
- this.duration = (((_a = this.videoRef) === null || _a === void 0 ? void 0 : _a.currentTime) || 0) + (((_b = this.hls) === null || _b === void 0 ? void 0 : _b.latency) || 0);
35669
+ var _a, _b, _c;
35670
+ // Use HLS seekable ranges to get actual duration instead of currentTime + latency
35671
+ // This prevents duration from fluctuating when seeking
35672
+ if (((_a = this.videoRef) === null || _a === void 0 ? void 0 : _a.seekable) && this.videoRef.seekable.length > 0) {
35673
+ this.duration = this.videoRef.seekable.end(this.videoRef.seekable.length - 1);
35674
+ }
35675
+ else {
35676
+ // Fallback to currentTime + latency if seekable ranges aren't available
35677
+ this.duration = (((_b = this.videoRef) === null || _b === void 0 ? void 0 : _b.currentTime) || 0) + (((_c = this.hls) === null || _c === void 0 ? void 0 : _c.latency) || 0);
35678
+ }
35665
35679
  };
35666
35680
  this.fastForwardToLatest = () => {
35667
- this.videoRef.currentTime = this.duration - 1; // Move to the latest time
35681
+ var _a;
35682
+ // Use seekable range for more accurate live edge positioning
35683
+ if (((_a = this.videoRef) === null || _a === void 0 ? void 0 : _a.seekable) && this.videoRef.seekable.length > 0) {
35684
+ this.videoRef.currentTime = this.videoRef.seekable.end(this.videoRef.seekable.length - 1) - 1;
35685
+ }
35686
+ else {
35687
+ this.videoRef.currentTime = this.duration - 1; // Fallback
35688
+ }
35668
35689
  };
35669
35690
  this.togglePlay = () => {
35670
35691
  if (this.videoRef.paused) {
@@ -35697,6 +35718,74 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35697
35718
  this.hideControls = true;
35698
35719
  }, 5000);
35699
35720
  };
35721
+ this.seekToPosition = (position) => {
35722
+ if (!this.videoRef)
35723
+ return;
35724
+ // Clamp position to valid range
35725
+ const clampedPosition = Math.max(0, Math.min(position, this.duration));
35726
+ // Set seeking state to prevent currentTime fluctuations
35727
+ this.isSeeking = true;
35728
+ // Update currentTime immediately for UI feedback
35729
+ this.currentTime = clampedPosition;
35730
+ try {
35731
+ this.videoRef.currentTime = clampedPosition;
35732
+ // Clear any existing timeout
35733
+ if (this.seekingTimeout) {
35734
+ clearTimeout(this.seekingTimeout);
35735
+ }
35736
+ // Reset seeking state after a short delay to allow video to stabilize
35737
+ this.seekingTimeout = setTimeout(() => {
35738
+ this.isSeeking = false;
35739
+ // Update currentTime one final time to ensure accuracy
35740
+ this.currentTime = this.videoRef.currentTime;
35741
+ }, 200);
35742
+ }
35743
+ catch (error) {
35744
+ this.isSeeking = false;
35745
+ this.meeting.__internals__.logger.warn('rtk-livestream-player:: Seek failed', { error });
35746
+ }
35747
+ };
35748
+ this.onSeekbarMouseDown = (event) => {
35749
+ event.preventDefault();
35750
+ this.isDragging = true;
35751
+ this.updateSeekPosition(event);
35752
+ document.addEventListener('mousemove', this.onSeekbarMouseMove);
35753
+ document.addEventListener('mouseup', this.onSeekbarMouseUp);
35754
+ };
35755
+ this.onSeekbarMouseMove = (event) => {
35756
+ if (!this.isDragging)
35757
+ return;
35758
+ this.updateSeekPosition(event);
35759
+ };
35760
+ this.onSeekbarMouseUp = (event) => {
35761
+ if (!this.isDragging)
35762
+ return;
35763
+ this.isDragging = false;
35764
+ this.updateSeekPosition(event);
35765
+ this.seekToPosition(this.seekPosition);
35766
+ document.removeEventListener('mousemove', this.onSeekbarMouseMove);
35767
+ document.removeEventListener('mouseup', this.onSeekbarMouseUp);
35768
+ };
35769
+ this.onSeekbarClick = (event) => {
35770
+ if (this.isDragging)
35771
+ return;
35772
+ this.updateSeekPosition(event);
35773
+ this.seekToPosition(this.seekPosition);
35774
+ };
35775
+ this.updateSeekPosition = (event) => {
35776
+ const seekbar = event.currentTarget;
35777
+ const rect = seekbar.getBoundingClientRect();
35778
+ const clickX = event.clientX - rect.left;
35779
+ const progress = Math.max(0, Math.min(1, clickX / rect.width));
35780
+ // Map progress to duration
35781
+ this.seekPosition = progress * this.duration;
35782
+ };
35783
+ this.getSeekbarProgress = () => {
35784
+ if (this.isDragging) {
35785
+ return this.duration > 0 ? this.seekPosition / this.duration : 0;
35786
+ }
35787
+ return this.duration > 0 ? this.currentTime / this.duration : 0;
35788
+ };
35700
35789
  this.getLoadingState = () => {
35701
35790
  let loadingMessage = '';
35702
35791
  let isLoading = false;
@@ -35766,7 +35855,7 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35766
35855
  });
35767
35856
  window.rtk_hls = this.hls;
35768
35857
  this.meeting.__internals__.logger.info(`rtk-livestream-player:: Loading source`);
35769
- this.hls.loadSource(this.playbackUrl);
35858
+ this.hls.loadSource(this.playbackUrl + '?dvrEnabled=true');
35770
35859
  this.meeting.__internals__.logger.info(`rtk-livestream-player:: Attaching video element to HLS`);
35771
35860
  this.hls.attachMedia(this.videoRef);
35772
35861
  this.meeting.__internals__.logger.info(`rtk-livestream-player:: Waiting async for HLS manifest parsing`);
@@ -35784,7 +35873,7 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35784
35873
  setTimeout(() => {
35785
35874
  if (this.playbackUrl && this.livestreamState === 'LIVESTREAMING') {
35786
35875
  this.meeting.__internals__.logger.info('rtk-livestream-player:: Retrying playbackUrl');
35787
- this.hls.loadSource(this.playbackUrl);
35876
+ this.hls.loadSource(this.playbackUrl + '?dvrEnabled=true');
35788
35877
  }
35789
35878
  }, 5000);
35790
35879
  return;
@@ -35877,6 +35966,9 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35877
35966
  this.meeting.livestream.removeListener('livestreamUpdate', this.livestreamUpdateListener);
35878
35967
  this.videoRef.removeEventListener('timeupdate', this.updateProgress);
35879
35968
  clearInterval(this.statsIntervalTimer);
35969
+ if (this.seekingTimeout) {
35970
+ clearTimeout(this.seekingTimeout);
35971
+ }
35880
35972
  this.videoRef = null;
35881
35973
  if (this.hls) {
35882
35974
  this.hls.destroy();
@@ -35908,7 +36000,7 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35908
36000
  // <!-- Control Bar -->
35909
36001
  h("div", { class: "control-bar" }, h("div", { class: "control-groups" }, h("rtk-icon", { id: "playPause", onClick: this.togglePlay, size: "lg", class: "control-btn", icon: this.playerState === PlayerState.PLAYING
35910
36002
  ? this.iconPack.pause
35911
- : this.iconPack.play }), h("rtk-icon", { size: "lg", class: "control-btn", icon: this.iconPack.fastForward, onClick: this.fastForwardToLatest }), h("span", { class: "timings" }, formatSecondsToHHMMSS(this.currentTime), " /", ' ', formatSecondsToHHMMSS(this.duration))), h("div", { class: "control-groups" }, h("select", { class: "level-select", onChange: (e) => this.changeQuality(parseInt(e.target.value)) }, this.qualityLevels.map((level) => (h("option", { value: level.level, selected: this.selectedQuality === level.level }, level.resolution)))), h("rtk-fullscreen-toggle", { id: "fullscreen", class: "control-btn fullscreen-btn", targetElement: this.videoContainerRef, size: "sm", iconPack: this.iconPack, t: this.t, ref: (fullScreenToggle) => {
36003
+ : this.iconPack.play }), h("rtk-icon", { size: "lg", class: "control-btn", icon: this.iconPack.fastForward, onClick: this.fastForwardToLatest }), h("span", { class: "timings" }, formatSecondsToHHMMSS(this.currentTime), " /", ' ', formatSecondsToHHMMSS(this.duration))), h("div", { class: "seekbar-container" }, h("div", { class: "seekbar", onMouseDown: this.onSeekbarMouseDown, onClick: this.onSeekbarClick }, h("div", { class: "seekbar-track" }, h("div", { class: "seekbar-progress", style: { width: `${this.getSeekbarProgress() * 100}%` } }), h("div", { class: "seekbar-handle", style: { left: `${this.getSeekbarProgress() * 100}%` } })))), h("div", { class: "control-groups" }, h("select", { class: "level-select", onChange: (e) => this.changeQuality(parseInt(e.target.value)) }, this.qualityLevels.map((level) => (h("option", { value: level.level, selected: this.selectedQuality === level.level }, level.resolution)))), h("rtk-fullscreen-toggle", { id: "fullscreen", class: "control-btn fullscreen-btn", targetElement: this.videoContainerRef, size: "sm", iconPack: this.iconPack, t: this.t, ref: (fullScreenToggle) => {
35912
36004
  var _a;
35913
36005
  // Create a <style> element
35914
36006
  const style = document.createElement('style');
@@ -35953,7 +36045,10 @@ const RtkLivestreamPlayer = /*@__PURE__*/ proxyCustomElement(class RtkLivestream
35953
36045
  "selectedQuality": [32],
35954
36046
  "currentTime": [32],
35955
36047
  "duration": [32],
35956
- "hideControls": [32]
36048
+ "hideControls": [32],
36049
+ "isDragging": [32],
36050
+ "seekPosition": [32],
36051
+ "isSeeking": [32]
35957
36052
  }, undefined, {
35958
36053
  "livestreamState": ["updateLivestreamId"],
35959
36054
  "meeting": ["meetingChanged"]
@@ -11,7 +11,7 @@ import { d as defineCustomElement$M } from './p-0ed5724c.js';
11
11
  import { d as defineCustomElement$L } from './p-1391bef0.js';
12
12
  import { d as defineCustomElement$K } from './p-31bcc734.js';
13
13
  import { d as defineCustomElement$J } from './p-04d15eb6.js';
14
- import { d as defineCustomElement$I } from './p-72ca9fd3.js';
14
+ import { d as defineCustomElement$I } from './p-8f513cbb.js';
15
15
  import { d as defineCustomElement$H } from './p-5ebc407b.js';
16
16
  import { d as defineCustomElement$G } from './p-5bcc3fbf.js';
17
17
  import { d as defineCustomElement$F } from './p-1bab77e6.js';
@@ -25,8 +25,8 @@ import { d as defineCustomElement$y } from './p-8183bf13.js';
25
25
  import { d as defineCustomElement$x } from './p-dd02fd30.js';
26
26
  import { d as defineCustomElement$w } from './p-01da0593.js';
27
27
  import { d as defineCustomElement$v } from './p-69c80d56.js';
28
- import { d as defineCustomElement$u } from './p-750d5890.js';
29
- import { d as defineCustomElement$t } from './p-431bde35.js';
28
+ import { d as defineCustomElement$u } from './p-7960f355.js';
29
+ import { d as defineCustomElement$t } from './p-cb12ef1a.js';
30
30
  import { d as defineCustomElement$s } from './p-f27918e3.js';
31
31
  import { d as defineCustomElement$r } from './p-ef17e3c1.js';
32
32
  import { d as defineCustomElement$q } from './p-07b63e04.js';
@@ -4,7 +4,7 @@ import { S as SyncWithStore } from './p-d9827659.js';
4
4
  import { d as defineCustomElement$2 } from './p-1391bef0.js';
5
5
  import { d as defineCustomElement$1 } from './p-3b29dda1.js';
6
6
 
7
- const rtkDialogCss = ":host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{word-wrap:break-word;overflow-wrap:break-word}#dialog{position:relative;max-height:100%;max-width:100%;padding:var(--rtk-space-0, 0px);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;color:rgb(var(--rtk-colors-text-1000, 255 255 255))}#dialog::backdrop{background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / 0.5);-webkit-backdrop-filter:blur(12px) saturate(180%);backdrop-filter:blur(12px) saturate(180%)}#dismiss-btn{position:absolute;top:var(--rtk-space-3, 12px);right:var(--rtk-space-3, 12px);z-index:50}::slotted(*){max-height:100%;max-width:100%}";
7
+ const rtkDialogCss = ":host{line-height:initial;font-family:var(--rtk-font-family, sans-serif);font-feature-settings:normal;font-variation-settings:normal}p{margin:var(--rtk-space-0, 0px);padding:var(--rtk-space-0, 0px)}:host{word-wrap:break-word;overflow-wrap:break-word}#dialog{position:relative;max-height:100%;max-width:100%;padding:var(--rtk-space-0, 0px);border-width:var(--rtk-border-width-none, 0);border-style:none;background-color:transparent;color:rgb(var(--rtk-colors-text-1000, 255 255 255))}#dialog::backdrop{background-color:rgba(var(--rtk-colors-background-600, 60 60 60) / 0.5);-webkit-backdrop-filter:blur(12px) saturate(180%);backdrop-filter:blur(12px) saturate(180%)}#dismiss-btn{position:absolute;top:var(--rtk-space-3, 12px);right:var(--rtk-space-3, 12px);z-index:50}::slotted(*){max-width:100%;height:auto;min-height:-moz-fit-content;min-height:fit-content}";
8
8
  const RtkDialogStyle0 = rtkDialogCss;
9
9
 
10
10
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
@@ -5,7 +5,7 @@ import { S as SyncWithStore } from './p-d9827659.js';
5
5
  import { d as defineCustomElement$7 } from './p-c05f6b8c.js';
6
6
  import { d as defineCustomElement$6 } from './p-1391bef0.js';
7
7
  import { d as defineCustomElement$5 } from './p-04d15eb6.js';
8
- import { d as defineCustomElement$4 } from './p-750d5890.js';
8
+ import { d as defineCustomElement$4 } from './p-7960f355.js';
9
9
  import { d as defineCustomElement$3 } from './p-3b29dda1.js';
10
10
  import { d as defineCustomElement$2 } from './p-f6ccc017.js';
11
11
  import { d as defineCustomElement$1 } from './p-895216f5.js';
@@ -16,7 +16,7 @@ import { d as defineCustomElement$d } from './p-8183bf13.js';
16
16
  import { d as defineCustomElement$c } from './p-dd02fd30.js';
17
17
  import { d as defineCustomElement$b } from './p-01da0593.js';
18
18
  import { d as defineCustomElement$a } from './p-69c80d56.js';
19
- import { d as defineCustomElement$9 } from './p-750d5890.js';
19
+ import { d as defineCustomElement$9 } from './p-7960f355.js';
20
20
  import { d as defineCustomElement$8 } from './p-3b29dda1.js';
21
21
  import { d as defineCustomElement$7 } from './p-a96f61c3.js';
22
22
  import { d as defineCustomElement$6 } from './p-2e39722f.js';
@@ -1,4 +1,4 @@
1
- import { R as RtkChannelHeader$1, d as defineCustomElement$1 } from './p-72ca9fd3.js';
1
+ import { R as RtkChannelHeader$1, d as defineCustomElement$1 } from './p-8f513cbb.js';
2
2
 
3
3
  const RtkChannelHeader = RtkChannelHeader$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { R as RtkChat$1, d as defineCustomElement$1 } from './p-aaaa2ffd.js';
1
+ import { R as RtkChat$1, d as defineCustomElement$1 } from './p-1d624be9.js';
2
2
 
3
3
  const RtkChat = RtkChat$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { R as RtkDialogManager$1, d as defineCustomElement$1 } from './p-431bde35.js';
1
+ import { R as RtkDialogManager$1, d as defineCustomElement$1 } from './p-cb12ef1a.js';
2
2
 
3
3
  const RtkDialogManager = RtkDialogManager$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { R as RtkDialog$1, d as defineCustomElement$1 } from './p-750d5890.js';
1
+ import { R as RtkDialog$1, d as defineCustomElement$1 } from './p-7960f355.js';
2
2
 
3
3
  const RtkDialog = RtkDialog$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -9,7 +9,7 @@ import { d as defineCustomElement$8 } from './p-3c7aec75.js';
9
9
  import { d as defineCustomElement$7 } from './p-a4f447c5.js';
10
10
  import { d as defineCustomElement$6 } from './p-3b29dda1.js';
11
11
  import { d as defineCustomElement$5 } from './p-68467e1e.js';
12
- import { d as defineCustomElement$4 } from './p-734d61ed.js';
12
+ import { d as defineCustomElement$4 } from './p-1745c048.js';
13
13
  import { d as defineCustomElement$3 } from './p-f6ccc017.js';
14
14
  import { d as defineCustomElement$2 } from './p-0aff670a.js';
15
15
 
@@ -1,4 +1,4 @@
1
- import { R as RtkLivestreamPlayer$1, d as defineCustomElement$1 } from './p-734d61ed.js';
1
+ import { R as RtkLivestreamPlayer$1, d as defineCustomElement$1 } from './p-1745c048.js';
2
2
 
3
3
  const RtkLivestreamPlayer = RtkLivestreamPlayer$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -13,9 +13,9 @@ import { d as defineCustomElement$O } from './p-0ed5724c.js';
13
13
  import { d as defineCustomElement$N } from './p-1391bef0.js';
14
14
  import { d as defineCustomElement$M } from './p-31bcc734.js';
15
15
  import { d as defineCustomElement$L } from './p-04d15eb6.js';
16
- import { d as defineCustomElement$K } from './p-72ca9fd3.js';
16
+ import { d as defineCustomElement$K } from './p-8f513cbb.js';
17
17
  import { d as defineCustomElement$J } from './p-5ebc407b.js';
18
- import { d as defineCustomElement$I } from './p-aaaa2ffd.js';
18
+ import { d as defineCustomElement$I } from './p-1d624be9.js';
19
19
  import { d as defineCustomElement$H } from './p-5bcc3fbf.js';
20
20
  import { d as defineCustomElement$G } from './p-1bab77e6.js';
21
21
  import { d as defineCustomElement$F } from './p-e7cce7d7.js';
@@ -28,8 +28,8 @@ import { d as defineCustomElement$z } from './p-8183bf13.js';
28
28
  import { d as defineCustomElement$y } from './p-dd02fd30.js';
29
29
  import { d as defineCustomElement$x } from './p-01da0593.js';
30
30
  import { d as defineCustomElement$w } from './p-69c80d56.js';
31
- import { d as defineCustomElement$v } from './p-750d5890.js';
32
- import { d as defineCustomElement$u } from './p-431bde35.js';
31
+ import { d as defineCustomElement$v } from './p-7960f355.js';
32
+ import { d as defineCustomElement$u } from './p-cb12ef1a.js';
33
33
  import { d as defineCustomElement$t } from './p-f27918e3.js';
34
34
  import { d as defineCustomElement$s } from './p-ef17e3c1.js';
35
35
  import { d as defineCustomElement$r } from './p-07b63e04.js';
@@ -2,7 +2,7 @@ import { p as proxyCustomElement, H, d as createEvent, h, e as Host } from './p-
2
2
  import { C as disableSettingSinkId, e as defaultIconPack, h as useLanguage, N as isLiveStreamViewer } from './p-fa889524.js';
3
3
  import { S as SyncWithStore } from './p-d9827659.js';
4
4
  import { d as defineCustomElement$4 } from './p-1391bef0.js';
5
- import { d as defineCustomElement$3 } from './p-750d5890.js';
5
+ import { d as defineCustomElement$3 } from './p-7960f355.js';
6
6
  import { d as defineCustomElement$2 } from './p-3b29dda1.js';
7
7
 
8
8
  /**
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-08-04T05:42:19",
2
+ "timestamp": "2025-08-08T07:52:32",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.27.2",