@hanifhan1f/vidstack 1.12.25 → 1.12.27

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 (92) hide show
  1. package/cdn/chunks/vidstack-8JHLDxl5.js +1 -0
  2. package/cdn/chunks/vidstack-Bpnl-N6k.js +1 -0
  3. package/cdn/chunks/vidstack-CnWKPIKT.js +16 -0
  4. package/cdn/chunks/vidstack-CqzAnF2W.js +16 -0
  5. package/cdn/vidstack.js +1 -1
  6. package/cdn/with-layouts/chunks/vidstack-BD5YoTt5.js +937 -0
  7. package/cdn/with-layouts/chunks/vidstack-DCaNJN4T.js +1 -0
  8. package/cdn/with-layouts/chunks/vidstack-Dd3L-eQj.js +1 -0
  9. package/cdn/with-layouts/chunks/vidstack-T2rZVigk.js +912 -0
  10. package/cdn/with-layouts/vidstack.js +1 -1
  11. package/dev/chunks/vidstack--aukHYxl.js +1520 -0
  12. package/dev/chunks/vidstack-B__DfQsT.js +1621 -0
  13. package/dev/chunks/vidstack-BoLIUOyq.js +204 -0
  14. package/dev/chunks/vidstack-CSryZFvY.js +1521 -0
  15. package/dev/chunks/vidstack-Cky9ors4.js +297 -0
  16. package/dev/chunks/vidstack-Crz0ROkT.js +3009 -0
  17. package/dev/chunks/vidstack-D-sqb6YI.js +308 -0
  18. package/dev/chunks/vidstack-DLXCqdYV.js +3010 -0
  19. package/dev/chunks/vidstack-DS7nRfge.js +204 -0
  20. package/dev/chunks/vidstack-Dco6kA4h.js +104 -0
  21. package/dev/chunks/vidstack-DpS0Kt4b.js +297 -0
  22. package/dev/chunks/vidstack-zJT-7ncH.js +5182 -0
  23. package/dev/define/plyr-layout.js +3 -4
  24. package/dev/define/templates/vidstack-audio-layout.js +4 -4
  25. package/dev/define/templates/vidstack-video-layout.js +4 -4
  26. package/dev/define/vidstack-player-default-layout.js +4 -4
  27. package/dev/define/vidstack-player-layouts.js +4 -4
  28. package/dev/define/vidstack-player-ui.js +5 -6
  29. package/dev/define/vidstack-player.js +3 -4
  30. package/dev/global/plyr.js +5 -6
  31. package/dev/global/vidstack-player.js +3 -4
  32. package/dev/providers/vidstack-dash.js +1 -2
  33. package/dev/providers/vidstack-hls.js +1 -2
  34. package/dev/providers/vidstack-video.js +1 -2
  35. package/dev/providers/vidstack-vimeo.js +1 -2
  36. package/dev/vidstack-elements.js +8 -9
  37. package/dev/vidstack.js +6 -7
  38. package/package.json +2 -1
  39. package/prod/chunks/vidstack-BVSJtdRd.js +297 -0
  40. package/prod/chunks/vidstack-BnEo_Sla.js +1621 -0
  41. package/prod/chunks/vidstack-CFXAYpuh.js +1521 -0
  42. package/prod/chunks/vidstack-CIvL96_j.js +297 -0
  43. package/prod/chunks/vidstack-CLTPjjXX.js +4772 -0
  44. package/prod/chunks/vidstack-CSHHV2zO.js +201 -0
  45. package/prod/chunks/vidstack-CYVCrFjx.js +201 -0
  46. package/prod/chunks/vidstack-D_atbNqH.js +3000 -0
  47. package/prod/chunks/vidstack-Eo46ZHu7.js +2999 -0
  48. package/prod/chunks/vidstack-sP7TQMB1.js +300 -0
  49. package/prod/chunks/vidstack-uVm3xX8H.js +104 -0
  50. package/prod/chunks/vidstack-zknLxihl.js +1520 -0
  51. package/prod/define/plyr-layout.js +3 -4
  52. package/prod/define/templates/vidstack-audio-layout.js +4 -4
  53. package/prod/define/templates/vidstack-video-layout.js +4 -4
  54. package/prod/define/vidstack-player-default-layout.js +4 -4
  55. package/prod/define/vidstack-player-layouts.js +4 -4
  56. package/prod/define/vidstack-player-ui.js +5 -6
  57. package/prod/define/vidstack-player.js +3 -4
  58. package/prod/global/plyr.js +5 -6
  59. package/prod/global/vidstack-player.js +3 -4
  60. package/prod/providers/vidstack-dash.js +1 -2
  61. package/prod/providers/vidstack-hls.js +1 -2
  62. package/prod/providers/vidstack-video.js +1 -2
  63. package/prod/providers/vidstack-vimeo.js +1 -2
  64. package/prod/vidstack-elements.js +8 -9
  65. package/prod/vidstack.js +6 -7
  66. package/server/chunks/vidstack-B3eA67nX.js +205 -0
  67. package/server/chunks/vidstack-B8P1aUCK.js +1503 -0
  68. package/server/chunks/vidstack-B8_v1VQn.js +3059 -0
  69. package/server/chunks/vidstack-BK4xGWUK.js +207 -0
  70. package/server/chunks/vidstack-BO8FLks6.js +295 -0
  71. package/server/chunks/vidstack-BaXvZgx2.js +141 -0
  72. package/server/chunks/vidstack-BlvJg_5A.js +4636 -0
  73. package/server/chunks/vidstack-CBhikwSz.js +67 -0
  74. package/server/chunks/vidstack-COczNXom.js +3059 -0
  75. package/server/chunks/vidstack-CyZPtpwO.js +1503 -0
  76. package/server/chunks/vidstack-Db22EuE_.js +207 -0
  77. package/server/chunks/vidstack-Dh1ZDEI-.js +29 -0
  78. package/server/chunks/vidstack-Dm-ETAZh.js +295 -0
  79. package/server/chunks/vidstack-NpAD9hfP.js +620 -0
  80. package/server/chunks/vidstack-O4BgIcQI.js +104 -0
  81. package/server/chunks/vidstack-n4zAyLEV.js +2139 -0
  82. package/server/chunks/vidstack-za5Yh5DQ.js +566 -0
  83. package/server/chunks/vidstack-zoXyfYxa.js +107 -0
  84. package/server/define/plyr-layout.js +7 -7
  85. package/server/define/vidstack-player-default-layout.js +3 -3
  86. package/server/define/vidstack-player-layouts.js +5 -5
  87. package/server/define/vidstack-player-ui.js +6 -6
  88. package/server/define/vidstack-player.js +4 -4
  89. package/server/global/plyr.js +9 -9
  90. package/server/global/vidstack-player.js +4 -4
  91. package/server/vidstack-elements.js +13 -13
  92. package/server/vidstack.js +8 -8
@@ -1,15 +1,14 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
- import { MediaPlayButtonElement, MediaMuteButtonElement, MediaCaptionButtonElement, MediaPIPButtonElement, MediaFullscreenButtonElement, MediaSeekButtonElement, MediaAirPlayButtonElement, MediaLiveButtonElement, MediaVolumeSliderElement, MediaTimeSliderElement, MediaSliderPreviewElement, MediaSliderThumbnailElement, MediaSliderValueElement, MediaMenuElement, MediaMenuButtonElement, MediaMenuItemsElement, MediaMenuItemElement, MediaAudioRadioGroupElement, MediaCaptionsRadioGroupElement, MediaSpeedRadioGroupElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaTimeElement, MediaThumbnailElement } from '../chunks/vidstack-DXfGRhxZ.js';
2
+ import { MediaPlayButtonElement, MediaMuteButtonElement, MediaCaptionButtonElement, MediaPIPButtonElement, MediaFullscreenButtonElement, MediaSeekButtonElement, MediaAirPlayButtonElement, MediaLiveButtonElement, MediaVolumeSliderElement, MediaTimeSliderElement, MediaSliderPreviewElement, MediaSliderThumbnailElement, MediaSliderValueElement, MediaMenuElement, MediaMenuButtonElement, MediaMenuItemsElement, MediaMenuItemElement, MediaAudioRadioGroupElement, MediaCaptionsRadioGroupElement, MediaSpeedRadioGroupElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaTimeElement, MediaThumbnailElement } from '../chunks/vidstack-CSHHV2zO.js';
3
3
  import { MediaPlyrLayoutElement } from './templates/plyr-layout.js';
4
4
  import { MediaPosterElement } from '../chunks/vidstack-DlLwMLBL.js';
5
- import '../chunks/vidstack-DDePVDjt.js';
5
+ import '../chunks/vidstack-Eo46ZHu7.js';
6
6
  import '../chunks/vidstack-tt3O1zL6.js';
7
7
  import '../chunks/vidstack-DB9WDRL5.js';
8
8
  import '@floating-ui/dom';
9
- import '../chunks/vidstack-oNEzlviH.js';
9
+ import '../chunks/vidstack-sP7TQMB1.js';
10
10
  import '../chunks/vidstack-KShKSmYu.js';
11
11
  import '../chunks/vidstack-wTTCvdqe.js';
12
- import '../chunks/vidstack-BP49Gz0m.js';
13
12
  import '../chunks/vidstack-COLU-zPZ.js';
14
13
  import '../chunks/vidstack-Dihypf8P.js';
15
14
  import '../chunks/vidstack-C9vIqaYT.js';
@@ -1,16 +1,16 @@
1
1
  import { signal, effect, toggleClass, Host, listenEvent } from '../../chunks/vidstack-BNpgCJJ1.js';
2
- import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-Ko2EJadT.js';
2
+ import { DefaultLayout, DefaultAnnouncer, DefaultCaptions, DefaultSeekButton, DefaultPlayButton, DefaultTimeSlider, DefaultTimeInvert, DefaultVolumePopup, DefaultCaptionButton, DefaultDownloadButton, DefaultAirPlayButton, DefaultChaptersMenu, DefaultSettingsMenu, useDefaultLayoutContext, DefaultControlsSpacer, i18n, DefaultChapterTitle, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BnEo_Sla.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-tt3O1zL6.js';
4
4
  import { useTransitionActive, useResizeObserver, isHTMLElement } from '../../chunks/vidstack-DB9WDRL5.js';
5
5
  import { $signal, SlotManager } from '../../chunks/vidstack-zfCm-GM5.js';
6
6
  import { LitElement } from '../../chunks/vidstack-CwTj4H1w.js';
7
7
  import { html } from 'lit-html';
8
8
  import { ref } from 'lit-html/directives/ref.js';
9
- import '../../chunks/vidstack-BP49Gz0m.js';
10
- import '../../chunks/vidstack-BTM4ERc7.js';
11
- import 'lit-html/directives/if-defined.js';
9
+ import '../../chunks/vidstack-sP7TQMB1.js';
12
10
  import '../../chunks/vidstack-KShKSmYu.js';
13
11
  import '../../chunks/vidstack-wTTCvdqe.js';
12
+ import '../../chunks/vidstack-BTM4ERc7.js';
13
+ import 'lit-html/directives/if-defined.js';
14
14
  import '@floating-ui/dom';
15
15
  import 'lit-html/directives/unsafe-svg.js';
16
16
  import 'lit-html/async-directive.js';
@@ -1,17 +1,17 @@
1
1
  import { computed, signal, effect, camelToKebabCase, Host } from '../../chunks/vidstack-BNpgCJJ1.js';
2
- import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-Ko2EJadT.js';
2
+ import { DefaultLayout, useDefaultLayoutContext, DefaultPlayButton, DefaultAnnouncer, DefaultCaptions, DefaultControlsSpacer, DefaultCaptionButton, DefaultDownloadButton, DefaultVolumePopup, DefaultTimeSlider, DefaultSeekButton, DefaultTimeInfo, DefaultFullscreenButton, DefaultTitle, DefaultPIPButton, DefaultChaptersMenu, DefaultSettingsMenu, DefaultEpisodeButton, setLayoutName, createMenuContainer, DefaultLayoutIconsLoader } from '../../chunks/vidstack-BnEo_Sla.js';
3
3
  import { useMediaContext, useMediaState } from '../../chunks/vidstack-tt3O1zL6.js';
4
4
  import { $signal, SlotManager } from '../../chunks/vidstack-zfCm-GM5.js';
5
5
  import { LitElement } from '../../chunks/vidstack-CwTj4H1w.js';
6
6
  import { html } from 'lit-html';
7
7
  import { keyed } from 'lit-html/directives/keyed.js';
8
8
  import { createSlot } from '../../chunks/vidstack-DB9WDRL5.js';
9
- import '../../chunks/vidstack-BP49Gz0m.js';
9
+ import '../../chunks/vidstack-sP7TQMB1.js';
10
+ import '../../chunks/vidstack-KShKSmYu.js';
11
+ import '../../chunks/vidstack-wTTCvdqe.js';
10
12
  import '../../chunks/vidstack-BTM4ERc7.js';
11
13
  import 'lit-html/directives/if-defined.js';
12
14
  import 'lit-html/directives/ref.js';
13
- import '../../chunks/vidstack-KShKSmYu.js';
14
- import '../../chunks/vidstack-wTTCvdqe.js';
15
15
  import 'lit-html/directives/unsafe-svg.js';
16
16
  import 'lit-html/async-directive.js';
17
17
  import '@floating-ui/dom';
@@ -1,7 +1,7 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
- import '../chunks/vidstack-Ko2EJadT.js';
4
+ import '../chunks/vidstack-BnEo_Sla.js';
5
5
  import '../chunks/vidstack-tt3O1zL6.js';
6
6
  import '../chunks/vidstack-DB9WDRL5.js';
7
7
  import '@floating-ui/dom';
@@ -10,11 +10,11 @@ import '../chunks/vidstack-zfCm-GM5.js';
10
10
  import 'lit-html/directives/if-defined.js';
11
11
  import 'lit-html/directives/unsafe-svg.js';
12
12
  import 'lit-html/async-directive.js';
13
- import '../chunks/vidstack-BP49Gz0m.js';
14
- import '../chunks/vidstack-BTM4ERc7.js';
15
- import 'lit-html/directives/ref.js';
13
+ import '../chunks/vidstack-sP7TQMB1.js';
16
14
  import '../chunks/vidstack-KShKSmYu.js';
17
15
  import '../chunks/vidstack-wTTCvdqe.js';
16
+ import '../chunks/vidstack-BTM4ERc7.js';
17
+ import 'lit-html/directives/ref.js';
18
18
  import '../chunks/vidstack-CwTj4H1w.js';
19
19
  import 'lit-html/directives/keyed.js';
20
20
 
@@ -2,7 +2,7 @@ import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
2
  import { MediaAudioLayoutElement } from './templates/vidstack-audio-layout.js';
3
3
  import { MediaVideoLayoutElement } from './templates/vidstack-video-layout.js';
4
4
  import { MediaPlyrLayoutElement } from './templates/plyr-layout.js';
5
- import '../chunks/vidstack-Ko2EJadT.js';
5
+ import '../chunks/vidstack-BnEo_Sla.js';
6
6
  import '../chunks/vidstack-tt3O1zL6.js';
7
7
  import '../chunks/vidstack-DB9WDRL5.js';
8
8
  import '@floating-ui/dom';
@@ -11,11 +11,11 @@ import '../chunks/vidstack-zfCm-GM5.js';
11
11
  import 'lit-html/directives/if-defined.js';
12
12
  import 'lit-html/directives/unsafe-svg.js';
13
13
  import 'lit-html/async-directive.js';
14
- import '../chunks/vidstack-BP49Gz0m.js';
15
- import '../chunks/vidstack-BTM4ERc7.js';
16
- import 'lit-html/directives/ref.js';
14
+ import '../chunks/vidstack-sP7TQMB1.js';
17
15
  import '../chunks/vidstack-KShKSmYu.js';
18
16
  import '../chunks/vidstack-wTTCvdqe.js';
17
+ import '../chunks/vidstack-BTM4ERc7.js';
18
+ import 'lit-html/directives/ref.js';
19
19
  import '../chunks/vidstack-CwTj4H1w.js';
20
20
  import 'lit-html/directives/keyed.js';
21
21
  import '../chunks/vidstack-BDIzK77F.js';
@@ -1,16 +1,15 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
- import { MediaLayoutElement, MediaControlsElement, MediaControlsGroupElement, MediaAnnouncerElement, MediaTooltipElement, MediaTooltipTriggerElement, MediaTooltipContentElement, MediaGoogleCastButtonElement, MediaToggleButtonElement, MediaSliderElement, MediaAudioGainSliderElement, MediaSpeedSliderElement, MediaQualitySliderElement, MediaSliderChaptersElement, MediaSliderStepsElement, MediaSliderVideoElement, MediaMenuPortalElement, MediaAudioGainRadioGroupElement, MediaChaptersRadioGroupElement, MediaRadioGroupElement, MediaGestureElement, MediaCaptionsElement, MediaTitleElement, MediaChapterTitleElement, MediaSpinnerElement } from '../chunks/vidstack-XA3zT5W9.js';
3
- import { MediaPlayButtonElement, MediaMuteButtonElement, MediaCaptionButtonElement, MediaFullscreenButtonElement, MediaPIPButtonElement, MediaSeekButtonElement, MediaAirPlayButtonElement, MediaVolumeSliderElement, MediaTimeSliderElement, MediaSliderPreviewElement, MediaSliderValueElement, MediaSliderThumbnailElement, MediaMenuElement, MediaMenuButtonElement, MediaMenuItemsElement, MediaMenuItemElement, MediaAudioRadioGroupElement, MediaCaptionsRadioGroupElement, MediaSpeedRadioGroupElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaThumbnailElement, MediaLiveButtonElement, MediaTimeElement } from '../chunks/vidstack-DXfGRhxZ.js';
2
+ import { MediaLayoutElement, MediaControlsElement, MediaControlsGroupElement, MediaAnnouncerElement, MediaTooltipElement, MediaTooltipTriggerElement, MediaTooltipContentElement, MediaGoogleCastButtonElement, MediaToggleButtonElement, MediaSliderElement, MediaAudioGainSliderElement, MediaSpeedSliderElement, MediaQualitySliderElement, MediaSliderChaptersElement, MediaSliderStepsElement, MediaSliderVideoElement, MediaMenuPortalElement, MediaAudioGainRadioGroupElement, MediaChaptersRadioGroupElement, MediaRadioGroupElement, MediaGestureElement, MediaCaptionsElement, MediaTitleElement, MediaChapterTitleElement, MediaSpinnerElement } from '../chunks/vidstack-BVSJtdRd.js';
3
+ import { MediaPlayButtonElement, MediaMuteButtonElement, MediaCaptionButtonElement, MediaFullscreenButtonElement, MediaPIPButtonElement, MediaSeekButtonElement, MediaAirPlayButtonElement, MediaVolumeSliderElement, MediaTimeSliderElement, MediaSliderPreviewElement, MediaSliderValueElement, MediaSliderThumbnailElement, MediaMenuElement, MediaMenuButtonElement, MediaMenuItemsElement, MediaMenuItemElement, MediaAudioRadioGroupElement, MediaCaptionsRadioGroupElement, MediaSpeedRadioGroupElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaThumbnailElement, MediaLiveButtonElement, MediaTimeElement } from '../chunks/vidstack-CSHHV2zO.js';
4
4
  import { MediaPosterElement } from '../chunks/vidstack-DlLwMLBL.js';
5
- import '../chunks/vidstack-Cs0fH84E.js';
5
+ import '../chunks/vidstack-zknLxihl.js';
6
6
  import '../chunks/vidstack-tt3O1zL6.js';
7
7
  import '../chunks/vidstack-DB9WDRL5.js';
8
8
  import '@floating-ui/dom';
9
- import '../chunks/vidstack-DDePVDjt.js';
10
- import '../chunks/vidstack-oNEzlviH.js';
9
+ import '../chunks/vidstack-Eo46ZHu7.js';
10
+ import '../chunks/vidstack-sP7TQMB1.js';
11
11
  import '../chunks/vidstack-KShKSmYu.js';
12
12
  import '../chunks/vidstack-wTTCvdqe.js';
13
- import '../chunks/vidstack-BP49Gz0m.js';
14
13
  import '../chunks/vidstack-COLU-zPZ.js';
15
14
  import '../chunks/vidstack-Dihypf8P.js';
16
15
  import '../chunks/vidstack-C9vIqaYT.js';
@@ -1,12 +1,11 @@
1
1
  import { defineCustomElement } from '../chunks/vidstack-BNpgCJJ1.js';
2
- import { MediaPlayerElement, MediaProviderElement } from '../chunks/vidstack-DnRxQoqP.js';
3
- import '../chunks/vidstack-C-yd_bAJ.js';
2
+ import { MediaPlayerElement, MediaProviderElement } from '../chunks/vidstack-uVm3xX8H.js';
3
+ import '../chunks/vidstack-CLTPjjXX.js';
4
4
  import '../chunks/vidstack-tt3O1zL6.js';
5
5
  import '../chunks/vidstack-wTTCvdqe.js';
6
6
  import '../chunks/vidstack-Fem0yF3c.js';
7
- import '../chunks/vidstack-oNEzlviH.js';
7
+ import '../chunks/vidstack-sP7TQMB1.js';
8
8
  import '../chunks/vidstack-KShKSmYu.js';
9
- import '../chunks/vidstack-BP49Gz0m.js';
10
9
  import '../chunks/vidstack-D5EzK014.js';
11
10
  import '../chunks/vidstack-B01xzxC4.js';
12
11
  import '../chunks/vidstack-DB9WDRL5.js';
@@ -1,16 +1,15 @@
1
1
  import '../define/vidstack-player.js';
2
2
  import '../define/plyr-layout.js';
3
3
  import { isString, listenEvent, setAttribute, kebabToCamelCase, setStyle, createDisposalBin, isBoolean, DOMEvent } from '../chunks/vidstack-BNpgCJJ1.js';
4
- import { mediaState, isHTMLAudioElement, isHTMLVideoElement, isHTMLIFrameElement } from '../chunks/vidstack-C-yd_bAJ.js';
4
+ import { mediaState, isHTMLAudioElement, isHTMLVideoElement, isHTMLIFrameElement } from '../chunks/vidstack-CLTPjjXX.js';
5
5
  import { isHTMLElement } from '../chunks/vidstack-DB9WDRL5.js';
6
6
  import { canPlayVideoType } from '../chunks/vidstack-wTTCvdqe.js';
7
- import '../chunks/vidstack-DnRxQoqP.js';
7
+ import '../chunks/vidstack-uVm3xX8H.js';
8
8
  import '../chunks/vidstack-tt3O1zL6.js';
9
- import '../chunks/vidstack-DXfGRhxZ.js';
10
- import '../chunks/vidstack-DDePVDjt.js';
11
- import '../chunks/vidstack-oNEzlviH.js';
9
+ import '../chunks/vidstack-CSHHV2zO.js';
10
+ import '../chunks/vidstack-Eo46ZHu7.js';
11
+ import '../chunks/vidstack-sP7TQMB1.js';
12
12
  import '../chunks/vidstack-KShKSmYu.js';
13
- import '../chunks/vidstack-BP49Gz0m.js';
14
13
  import '../chunks/vidstack-COLU-zPZ.js';
15
14
  import '../chunks/vidstack-Dihypf8P.js';
16
15
  import '../chunks/vidstack-C9vIqaYT.js';
@@ -1,14 +1,13 @@
1
1
  import '../define/vidstack-player.js';
2
2
  import { isString, defineCustomElement, kebabToCamelCase } from '../chunks/vidstack-BNpgCJJ1.js';
3
- import { isHTMLAudioElement, isHTMLVideoElement, isHTMLIFrameElement } from '../chunks/vidstack-C-yd_bAJ.js';
3
+ import { isHTMLAudioElement, isHTMLVideoElement, isHTMLIFrameElement } from '../chunks/vidstack-CLTPjjXX.js';
4
4
  import { isHTMLElement } from '../chunks/vidstack-DB9WDRL5.js';
5
- import '../chunks/vidstack-DnRxQoqP.js';
5
+ import '../chunks/vidstack-uVm3xX8H.js';
6
6
  import '../chunks/vidstack-tt3O1zL6.js';
7
7
  import '../chunks/vidstack-wTTCvdqe.js';
8
8
  import '../chunks/vidstack-Fem0yF3c.js';
9
- import '../chunks/vidstack-oNEzlviH.js';
9
+ import '../chunks/vidstack-sP7TQMB1.js';
10
10
  import '../chunks/vidstack-KShKSmYu.js';
11
- import '../chunks/vidstack-BP49Gz0m.js';
12
11
  import '../chunks/vidstack-D5EzK014.js';
13
12
  import '../chunks/vidstack-B01xzxC4.js';
14
13
  import '@floating-ui/dom';
@@ -3,14 +3,13 @@ import { canPlayVideoType, canPlayAudioType, IS_CHROME, isDASHSupported } from '
3
3
  import { VideoProvider } from './vidstack-video.js';
4
4
  import { listenEvent, effect, DOMEvent, isNumber, isString, camelToKebabCase, isUndefined, isFunction, peek } from '../chunks/vidstack-BNpgCJJ1.js';
5
5
  import { QualitySymbol } from '../chunks/vidstack-B01xzxC4.js';
6
- import { TextTrackSymbol, TextTrack } from '../chunks/vidstack-oNEzlviH.js';
6
+ import { TextTrackSymbol, TextTrack } from '../chunks/vidstack-sP7TQMB1.js';
7
7
  import { ListSymbol } from '../chunks/vidstack-D5EzK014.js';
8
8
  import { RAFLoop } from '../chunks/vidstack-BdFYWy6h.js';
9
9
  import { coerceToError } from '../chunks/vidstack-C9vIqaYT.js';
10
10
  import './vidstack-html.js';
11
11
  import '../chunks/vidstack-Dihypf8P.js';
12
12
  import '../chunks/vidstack-Bn9yLryd.js';
13
- import '../chunks/vidstack-BP49Gz0m.js';
14
13
 
15
14
  function getLangName(langCode) {
16
15
  try {
@@ -3,14 +3,13 @@ import { IS_CHROME, isHLSSupported } from '../chunks/vidstack-wTTCvdqe.js';
3
3
  import { VideoProvider } from './vidstack-video.js';
4
4
  import { peek, listenEvent, effect, DOMEvent, isString, camelToKebabCase, isUndefined, isFunction } from '../chunks/vidstack-BNpgCJJ1.js';
5
5
  import { QualitySymbol } from '../chunks/vidstack-B01xzxC4.js';
6
- import { TextTrack, TextTrackSymbol } from '../chunks/vidstack-oNEzlviH.js';
6
+ import { TextTrack, TextTrackSymbol } from '../chunks/vidstack-sP7TQMB1.js';
7
7
  import { ListSymbol } from '../chunks/vidstack-D5EzK014.js';
8
8
  import { RAFLoop } from '../chunks/vidstack-BdFYWy6h.js';
9
9
  import { coerceToError } from '../chunks/vidstack-C9vIqaYT.js';
10
10
  import './vidstack-html.js';
11
11
  import '../chunks/vidstack-Dihypf8P.js';
12
12
  import '../chunks/vidstack-Bn9yLryd.js';
13
- import '../chunks/vidstack-BP49Gz0m.js';
14
13
 
15
14
  const toDOMEventType = (type) => camelToKebabCase(type);
16
15
  class HLSController {
@@ -2,12 +2,11 @@ import { onDispose, EventsController, listenEvent, DOMEvent, scoped } from '../c
2
2
  import { canUsePictureInPicture, canUseVideoPresentation, canPlayHLSNatively } from '../chunks/vidstack-wTTCvdqe.js';
3
3
  import { HTMLMediaProvider } from './vidstack-html.js';
4
4
  import { HTMLAirPlayAdapter } from '../chunks/vidstack-Bn9yLryd.js';
5
- import { TextTrack, TextTrackSymbol } from '../chunks/vidstack-oNEzlviH.js';
5
+ import { TextTrack, TextTrackSymbol } from '../chunks/vidstack-sP7TQMB1.js';
6
6
  import '../chunks/vidstack-BdFYWy6h.js';
7
7
  import '../chunks/vidstack-Dihypf8P.js';
8
8
  import '../chunks/vidstack-D5EzK014.js';
9
9
  import '../chunks/vidstack-KShKSmYu.js';
10
- import '../chunks/vidstack-BP49Gz0m.js';
11
10
 
12
11
  class NativeHLSTextTracks {
13
12
  #video;
@@ -1,13 +1,12 @@
1
1
  import { createScope, signal, effect, peek, isString, deferredPromise, listenEvent, isArray } from '../chunks/vidstack-BNpgCJJ1.js';
2
2
  import { QualitySymbol } from '../chunks/vidstack-B01xzxC4.js';
3
3
  import { TimeRange } from '../chunks/vidstack-Fem0yF3c.js';
4
- import { TextTrack } from '../chunks/vidstack-oNEzlviH.js';
4
+ import { TextTrack } from '../chunks/vidstack-sP7TQMB1.js';
5
5
  import { ListSymbol } from '../chunks/vidstack-D5EzK014.js';
6
6
  import { RAFLoop } from '../chunks/vidstack-BdFYWy6h.js';
7
7
  import { preconnect } from '../chunks/vidstack-KShKSmYu.js';
8
8
  import { EmbedProvider } from '../chunks/vidstack-Dg71uhRc.js';
9
9
  import { resolveVimeoVideoId, getVimeoVideoInfo } from '../chunks/vidstack-krOAtKMi.js';
10
- import '../chunks/vidstack-BP49Gz0m.js';
11
10
  import '../chunks/vidstack-wTTCvdqe.js';
12
11
 
13
12
  const trackedVimeoEvents = [
@@ -1,32 +1,31 @@
1
1
  export { defineCustomElement } from './chunks/vidstack-BNpgCJJ1.js';
2
- export { MediaAnnouncerElement, MediaAudioGainRadioGroupElement, MediaAudioGainSliderElement, MediaCaptionsElement, MediaChapterTitleElement, MediaChaptersRadioGroupElement, MediaControlsElement, MediaControlsGroupElement, MediaGestureElement, MediaGoogleCastButtonElement, MediaLayoutElement, MediaMenuPortalElement, MediaQualitySliderElement, MediaRadioGroupElement, MediaSliderChaptersElement, MediaSliderElement, MediaSliderStepsElement, MediaSliderVideoElement, MediaSpeedSliderElement, MediaSpinnerElement, MediaTitleElement, MediaToggleButtonElement, MediaTooltipContentElement, MediaTooltipElement, MediaTooltipTriggerElement } from './chunks/vidstack-XA3zT5W9.js';
3
- export { MediaPlayerElement, MediaProviderElement } from './chunks/vidstack-DnRxQoqP.js';
2
+ export { MediaAnnouncerElement, MediaAudioGainRadioGroupElement, MediaAudioGainSliderElement, MediaCaptionsElement, MediaChapterTitleElement, MediaChaptersRadioGroupElement, MediaControlsElement, MediaControlsGroupElement, MediaGestureElement, MediaGoogleCastButtonElement, MediaLayoutElement, MediaMenuPortalElement, MediaQualitySliderElement, MediaRadioGroupElement, MediaSliderChaptersElement, MediaSliderElement, MediaSliderStepsElement, MediaSliderVideoElement, MediaSpeedSliderElement, MediaSpinnerElement, MediaTitleElement, MediaToggleButtonElement, MediaTooltipContentElement, MediaTooltipElement, MediaTooltipTriggerElement } from './chunks/vidstack-BVSJtdRd.js';
3
+ export { MediaPlayerElement, MediaProviderElement } from './chunks/vidstack-uVm3xX8H.js';
4
4
  export { MediaPosterElement } from './chunks/vidstack-DlLwMLBL.js';
5
- export { MediaAirPlayButtonElement, MediaAudioRadioGroupElement, MediaCaptionButtonElement, MediaCaptionsRadioGroupElement, MediaFullscreenButtonElement, MediaLiveButtonElement, MediaMenuButtonElement, MediaMenuElement, MediaMenuItemElement, MediaMenuItemsElement, MediaMuteButtonElement, MediaPIPButtonElement, MediaPlayButtonElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaSeekButtonElement, MediaSliderPreviewElement, MediaSliderThumbnailElement, MediaSliderValueElement, MediaSpeedRadioGroupElement, MediaThumbnailElement, MediaTimeElement, MediaTimeSliderElement, MediaVolumeSliderElement } from './chunks/vidstack-DXfGRhxZ.js';
5
+ export { MediaAirPlayButtonElement, MediaAudioRadioGroupElement, MediaCaptionButtonElement, MediaCaptionsRadioGroupElement, MediaFullscreenButtonElement, MediaLiveButtonElement, MediaMenuButtonElement, MediaMenuElement, MediaMenuItemElement, MediaMenuItemsElement, MediaMuteButtonElement, MediaPIPButtonElement, MediaPlayButtonElement, MediaQualityRadioGroupElement, MediaRadioElement, MediaSeekButtonElement, MediaSliderPreviewElement, MediaSliderThumbnailElement, MediaSliderValueElement, MediaSpeedRadioGroupElement, MediaThumbnailElement, MediaTimeElement, MediaTimeSliderElement, MediaVolumeSliderElement } from './chunks/vidstack-CSHHV2zO.js';
6
6
  export { MediaAudioLayoutElement } from './define/templates/vidstack-audio-layout.js';
7
7
  export { MediaVideoLayoutElement } from './define/templates/vidstack-video-layout.js';
8
8
  export { MediaPlyrLayoutElement } from './define/templates/plyr-layout.js';
9
- import './chunks/vidstack-Cs0fH84E.js';
9
+ import './chunks/vidstack-zknLxihl.js';
10
10
  import './chunks/vidstack-tt3O1zL6.js';
11
11
  import './chunks/vidstack-DB9WDRL5.js';
12
12
  import '@floating-ui/dom';
13
- import './chunks/vidstack-DDePVDjt.js';
14
- import './chunks/vidstack-oNEzlviH.js';
13
+ import './chunks/vidstack-Eo46ZHu7.js';
14
+ import './chunks/vidstack-sP7TQMB1.js';
15
15
  import './chunks/vidstack-KShKSmYu.js';
16
16
  import './chunks/vidstack-wTTCvdqe.js';
17
- import './chunks/vidstack-BP49Gz0m.js';
18
17
  import './chunks/vidstack-COLU-zPZ.js';
19
18
  import './chunks/vidstack-Dihypf8P.js';
20
19
  import './chunks/vidstack-C9vIqaYT.js';
21
20
  import './chunks/vidstack-BTM4ERc7.js';
22
21
  import 'lit-html';
23
22
  import './chunks/vidstack-CwTj4H1w.js';
24
- import './chunks/vidstack-C-yd_bAJ.js';
23
+ import './chunks/vidstack-CLTPjjXX.js';
25
24
  import './chunks/vidstack-Fem0yF3c.js';
26
25
  import './chunks/vidstack-D5EzK014.js';
27
26
  import './chunks/vidstack-B01xzxC4.js';
28
27
  import './chunks/vidstack-C4PTiuot.js';
29
- import './chunks/vidstack-Ko2EJadT.js';
28
+ import './chunks/vidstack-BnEo_Sla.js';
30
29
  import './chunks/vidstack-zfCm-GM5.js';
31
30
  import 'lit-html/directives/if-defined.js';
32
31
  import 'lit-html/directives/unsafe-svg.js';
package/prod/vidstack.js CHANGED
@@ -1,15 +1,14 @@
1
1
  import { DOMEvent, isString, EventsController, useState } from './chunks/vidstack-BNpgCJJ1.js';
2
2
  export { appendTriggerEvent, findTriggerEvent, hasTriggerEvent, isKeyboardClick, isKeyboardEvent, isPointerEvent, walkTriggerEventChain } from './chunks/vidstack-BNpgCJJ1.js';
3
- export { AudioProviderLoader, AudioTrackList, DASHProviderLoader, FullscreenController, HLSProviderLoader, List, LocalMediaStorage, MEDIA_KEY_SHORTCUTS, MediaControls, MediaPlayer, MediaProvider, MediaRemoteControl, ScreenOrientationController, TextRenderers, TextTrackList, VideoProviderLoader, VideoQualityList, VimeoProviderLoader, YouTubeProviderLoader, boundTime, canFullscreen, isAudioProvider, isDASHProvider, isGoogleCastProvider, isHLSProvider, isHTMLAudioElement, isHTMLIFrameElement, isHTMLMediaElement, isHTMLVideoElement, isVideoProvider, isVideoQualitySrc, isVimeoProvider, isYouTubeProvider, mediaState, softResetMediaState } from './chunks/vidstack-C-yd_bAJ.js';
3
+ export { AudioProviderLoader, AudioTrackList, DASHProviderLoader, FullscreenController, HLSProviderLoader, List, LocalMediaStorage, MEDIA_KEY_SHORTCUTS, MediaControls, MediaPlayer, MediaProvider, MediaRemoteControl, ScreenOrientationController, TextRenderers, TextTrackList, VideoProviderLoader, VideoQualityList, VimeoProviderLoader, YouTubeProviderLoader, boundTime, canFullscreen, isAudioProvider, isDASHProvider, isGoogleCastProvider, isHLSProvider, isHTMLAudioElement, isHTMLIFrameElement, isHTMLMediaElement, isHTMLVideoElement, isVideoProvider, isVideoQualitySrc, isVimeoProvider, isYouTubeProvider, mediaState, softResetMediaState } from './chunks/vidstack-CLTPjjXX.js';
4
4
  export { mediaContext } from './chunks/vidstack-tt3O1zL6.js';
5
- import { TextTrackSymbol } from './chunks/vidstack-oNEzlviH.js';
6
- export { TextTrack, isTrackCaptionKind, parseJSONCaptionsFile } from './chunks/vidstack-oNEzlviH.js';
7
- export { findActiveCue, isCueActive, watchActiveTextTrack, watchCueTextChange } from './chunks/vidstack-BP49Gz0m.js';
5
+ import { TextTrackSymbol } from './chunks/vidstack-sP7TQMB1.js';
6
+ export { TextTrack, findActiveCue, isCueActive, isTrackCaptionKind, parseJSONCaptionsFile, watchActiveTextTrack, watchCueTextChange } from './chunks/vidstack-sP7TQMB1.js';
8
7
  export { sortVideoQualities } from './chunks/vidstack-BTM4ERc7.js';
9
- import { Thumbnail, Slider } from './chunks/vidstack-DDePVDjt.js';
10
- export { ARIAKeyShortcuts, AirPlayButton, AudioRadioGroup, CaptionButton, CaptionsRadioGroup, DEFAULT_PLAYBACK_RATES, FullscreenButton, LiveButton, Menu, MenuButton, MenuItem, MenuItems, MenuPortal, MuteButton, PIPButton, PlayButton, QualityRadioGroup, Radio, SeekButton, SliderController, SliderPreview, SliderValue, SpeedRadioGroup, ThumbnailsLoader, Time, TimeSlider, VolumeSlider, formatSpokenTime, formatTime, menuPortalContext, sliderContext, sliderState, updateSliderPreviewPlacement } from './chunks/vidstack-DDePVDjt.js';
8
+ import { Thumbnail, Slider } from './chunks/vidstack-Eo46ZHu7.js';
9
+ export { ARIAKeyShortcuts, AirPlayButton, AudioRadioGroup, CaptionButton, CaptionsRadioGroup, DEFAULT_PLAYBACK_RATES, FullscreenButton, LiveButton, Menu, MenuButton, MenuItem, MenuItems, MenuPortal, MuteButton, PIPButton, PlayButton, QualityRadioGroup, Radio, SeekButton, SliderController, SliderPreview, SliderValue, SpeedRadioGroup, ThumbnailsLoader, Time, TimeSlider, VolumeSlider, formatSpokenTime, formatTime, menuPortalContext, sliderContext, sliderState, updateSliderPreviewPlacement } from './chunks/vidstack-Eo46ZHu7.js';
11
10
  export { TimeRange, getTimeRangesEnd, getTimeRangesStart, normalizeTimeIntervals, updateTimeIntervals } from './chunks/vidstack-Fem0yF3c.js';
12
- export { AudioGainRadioGroup, AudioGainSlider, Captions, ChaptersRadioGroup, Controls, ControlsGroup, DEFAULT_AUDIO_GAINS, Gesture, GoogleCastButton, MediaAnnouncer, QualitySlider, RadioGroup, SliderChapters, SliderVideo, SpeedSlider, ToggleButton, Tooltip, TooltipContent, TooltipTrigger } from './chunks/vidstack-Cs0fH84E.js';
11
+ export { AudioGainRadioGroup, AudioGainSlider, Captions, ChaptersRadioGroup, Controls, ControlsGroup, DEFAULT_AUDIO_GAINS, Gesture, GoogleCastButton, MediaAnnouncer, QualitySlider, RadioGroup, SliderChapters, SliderVideo, SpeedSlider, ToggleButton, Tooltip, TooltipContent, TooltipTrigger } from './chunks/vidstack-zknLxihl.js';
13
12
  export { Poster } from './chunks/vidstack-C4PTiuot.js';
14
13
  export { usePlyrLayoutClasses } from './chunks/vidstack-BDIzK77F.js';
15
14
  export { getDownloadFile } from './chunks/vidstack-KShKSmYu.js';
@@ -0,0 +1,205 @@
1
+ import { computed, peek, effect, onDispose, isDOMNode, animationFrameThrottle, isString } from './vidstack-B8LynzY5.js';
2
+ import { nothing, render, html } from 'lit-html';
3
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
4
+ import { unsafeSVG } from 'lit-html/directives/unsafe-svg.js';
5
+ import { directive, AsyncDirective, PartType } from 'lit-html/async-directive.js';
6
+ import { useMediaContext } from './vidstack-NpAD9hfP.js';
7
+
8
+ class SignalDirective extends AsyncDirective {
9
+ #signal = null;
10
+ #isAttr = false;
11
+ #stop = null;
12
+ constructor(part) {
13
+ super(part);
14
+ this.#isAttr = part.type === PartType.ATTRIBUTE || part.type === PartType.BOOLEAN_ATTRIBUTE;
15
+ }
16
+ render(signal) {
17
+ if (signal !== this.#signal) {
18
+ this.disconnected();
19
+ this.#signal = signal;
20
+ if (this.isConnected) this.#watch();
21
+ }
22
+ return this.#signal ? this.#resolveValue(peek(this.#signal)) : nothing;
23
+ }
24
+ reconnected() {
25
+ this.#watch();
26
+ }
27
+ disconnected() {
28
+ this.#stop?.();
29
+ this.#stop = null;
30
+ }
31
+ #watch() {
32
+ if (!this.#signal) return;
33
+ this.#stop = effect(this.#onValueChange.bind(this));
34
+ }
35
+ #resolveValue(value) {
36
+ return this.#isAttr ? ifDefined(value) : value;
37
+ }
38
+ #setValue(value) {
39
+ this.setValue(this.#resolveValue(value));
40
+ }
41
+ #onValueChange() {
42
+ {
43
+ this.#setValue(this.#signal?.());
44
+ }
45
+ }
46
+ }
47
+ function $signal(compute) {
48
+ return directive(SignalDirective)(computed(compute));
49
+ }
50
+
51
+ class SlotObserver {
52
+ #roots;
53
+ #callback;
54
+ elements = /* @__PURE__ */ new Set();
55
+ constructor(roots, callback) {
56
+ this.#roots = roots;
57
+ this.#callback = callback;
58
+ }
59
+ connect() {
60
+ this.#update();
61
+ const observer = new MutationObserver(this.#onMutation);
62
+ for (const root of this.#roots) observer.observe(root, { childList: true, subtree: true });
63
+ onDispose(() => observer.disconnect());
64
+ onDispose(this.disconnect.bind(this));
65
+ }
66
+ disconnect() {
67
+ this.elements.clear();
68
+ }
69
+ assign(template, slot) {
70
+ if (isDOMNode(template)) {
71
+ slot.textContent = "";
72
+ slot.append(template);
73
+ } else {
74
+ render(null, slot);
75
+ render(template, slot);
76
+ }
77
+ if (!slot.style.display) {
78
+ slot.style.display = "contents";
79
+ }
80
+ const el = slot.firstElementChild;
81
+ if (!el) return;
82
+ const classList = slot.getAttribute("data-class");
83
+ if (classList) el.classList.add(...classList.split(" "));
84
+ }
85
+ #onMutation = animationFrameThrottle(this.#update.bind(this));
86
+ #update(entries) {
87
+ if (entries && !entries.some((e) => e.addedNodes.length)) return;
88
+ let changed = false, slots = this.#roots.flatMap((root) => [...root.querySelectorAll("slot")]);
89
+ for (const slot of slots) {
90
+ if (!slot.hasAttribute("name") || this.elements.has(slot)) continue;
91
+ this.elements.add(slot);
92
+ changed = true;
93
+ }
94
+ if (changed) this.#callback(this.elements);
95
+ }
96
+ }
97
+
98
+ let id = 0, slotIdAttr = "data-slot-id";
99
+ class SlotManager {
100
+ #roots;
101
+ slots;
102
+ constructor(roots) {
103
+ this.#roots = roots;
104
+ this.slots = new SlotObserver(roots, this.#update.bind(this));
105
+ }
106
+ connect() {
107
+ this.slots.connect();
108
+ this.#update();
109
+ const mutations = new MutationObserver(this.#onMutation);
110
+ for (const root of this.#roots) mutations.observe(root, { childList: true });
111
+ onDispose(() => mutations.disconnect());
112
+ }
113
+ #onMutation = animationFrameThrottle(this.#update.bind(this));
114
+ #update() {
115
+ for (const root of this.#roots) {
116
+ for (const node of root.children) {
117
+ if (node.nodeType !== 1) continue;
118
+ const name = node.getAttribute("slot");
119
+ if (!name) continue;
120
+ node.style.display = "none";
121
+ let slotId = node.getAttribute(slotIdAttr);
122
+ if (!slotId) {
123
+ node.setAttribute(slotIdAttr, slotId = ++id + "");
124
+ }
125
+ for (const slot of this.slots.elements) {
126
+ if (slot.getAttribute("name") !== name || slot.getAttribute(slotIdAttr) === slotId) {
127
+ continue;
128
+ }
129
+ const clone = document.importNode(node, true);
130
+ if (name.includes("-icon")) clone.classList.add("vds-icon");
131
+ clone.style.display = "";
132
+ clone.removeAttribute("slot");
133
+ this.slots.assign(clone, slot);
134
+ slot.setAttribute(slotIdAttr, slotId);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ function Icon({ name, class: _class, state, paths, viewBox = "0 0 32 32" }) {
142
+ return html`<svg
143
+ class="${"vds-icon" + (_class ? ` ${_class}` : "")}"
144
+ viewBox="${viewBox}"
145
+ fill="none"
146
+ aria-hidden="true"
147
+ focusable="false"
148
+ xmlns="http://www.w3.org/2000/svg"
149
+ data-icon=${ifDefined(name ?? state)}
150
+ >
151
+ ${!isString(paths) ? $signal(paths) : unsafeSVG(paths)}
152
+ </svg>`;
153
+ }
154
+
155
+ class IconsLoader {
156
+ #icons = {};
157
+ #loaded = false;
158
+ slots;
159
+ constructor(roots) {
160
+ this.slots = new SlotObserver(roots, this.#insertIcons.bind(this));
161
+ }
162
+ connect() {
163
+ this.slots.connect();
164
+ }
165
+ load() {
166
+ this.loadIcons().then((icons) => {
167
+ this.#icons = icons;
168
+ this.#loaded = true;
169
+ this.#insertIcons();
170
+ });
171
+ }
172
+ *#iterate() {
173
+ for (const iconName of Object.keys(this.#icons)) {
174
+ const slotName = `${iconName}-icon`;
175
+ for (const slot of this.slots.elements) {
176
+ if (slot.name !== slotName) continue;
177
+ yield { icon: this.#icons[iconName], slot };
178
+ }
179
+ }
180
+ }
181
+ #insertIcons() {
182
+ if (!this.#loaded) return;
183
+ for (const { icon, slot } of this.#iterate()) {
184
+ this.slots.assign(icon, slot);
185
+ }
186
+ }
187
+ }
188
+
189
+ class LayoutIconsLoader extends IconsLoader {
190
+ connect() {
191
+ super.connect();
192
+ const { player } = useMediaContext();
193
+ if (!player.el) return;
194
+ let dispose, observer = new IntersectionObserver((entries) => {
195
+ if (!entries[0]?.isIntersecting) return;
196
+ dispose?.();
197
+ dispose = void 0;
198
+ this.load();
199
+ });
200
+ observer.observe(player.el);
201
+ dispose = onDispose(() => observer.disconnect());
202
+ }
203
+ }
204
+
205
+ export { $signal, Icon, LayoutIconsLoader, SlotManager };