classicy 0.6.1 → 0.6.8

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 (170) hide show
  1. package/package.json +6 -3
  2. package/dist/Preview-DFWgeXbD.js +0 -87
  3. package/dist/Preview-DFWgeXbD.js.map +0 -1
  4. package/dist/classicy.css +0 -1
  5. package/dist/classicy.es.js +0 -34154
  6. package/dist/classicy.es.js.map +0 -1
  7. package/dist/classicy.umd.js +0 -3619
  8. package/dist/classicy.umd.js.map +0 -1
  9. package/dist/dash.all.min-DWS2dLrE.js +0 -18789
  10. package/dist/dash.all.min-DWS2dLrE.js.map +0 -1
  11. package/dist/hls-BoR3u0PC.js +0 -21705
  12. package/dist/hls-BoR3u0PC.js.map +0 -1
  13. package/dist/index-Cd0v-WM7.js +0 -15697
  14. package/dist/index-Cd0v-WM7.js.map +0 -1
  15. package/dist/mixin-CkMUTfmX.js +0 -731
  16. package/dist/mixin-CkMUTfmX.js.map +0 -1
  17. package/dist/react-BnzwZp9T.js +0 -357
  18. package/dist/react-BnzwZp9T.js.map +0 -1
  19. package/dist/react-BzHiAeII.js +0 -402
  20. package/dist/react-BzHiAeII.js.map +0 -1
  21. package/dist/react-Ct5L317G.js +0 -217
  22. package/dist/react-Ct5L317G.js.map +0 -1
  23. package/dist/react-DY0DOTNY.js +0 -356
  24. package/dist/react-DY0DOTNY.js.map +0 -1
  25. package/dist/react-D_7TFUvN.js +0 -437
  26. package/dist/react-D_7TFUvN.js.map +0 -1
  27. package/dist/react-Ql_PNI5h.js +0 -267
  28. package/dist/react-Ql_PNI5h.js.map +0 -1
  29. package/dist/react-_-oMoy3X.js +0 -503
  30. package/dist/react-_-oMoy3X.js.map +0 -1
  31. package/dist/react-b5Gp0-6S.js +0 -3067
  32. package/dist/react-b5Gp0-6S.js.map +0 -1
  33. package/dist/sounds/platinum/platinum.ac3 +0 -0
  34. package/dist/sounds/platinum/platinum.caf +0 -0
  35. package/dist/sounds/platinum/platinum.json +0 -174
  36. package/dist/sounds/platinum/platinum.m4a +0 -0
  37. package/dist/sounds/platinum/platinum.mp3 +0 -0
  38. package/dist/sounds/platinum/platinum.ogg +0 -0
  39. package/dist/sounds/platinum/platinum.wav +0 -0
  40. package/dist/types/assets/sounds/platinum/platinum.json.d.ts +0 -176
  41. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts +0 -98
  42. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts.map +0 -1
  43. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts +0 -9
  44. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts.map +0 -1
  45. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts +0 -7
  46. package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts.map +0 -1
  47. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts +0 -120
  48. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts.map +0 -1
  49. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts +0 -3
  50. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts.map +0 -1
  51. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts +0 -3
  52. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts.map +0 -1
  53. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts +0 -5
  54. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts.map +0 -1
  55. package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/styles/themes.json.d.ts +0 -1433
  56. package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts +0 -2
  57. package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts.map +0 -1
  58. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts +0 -3
  59. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts.map +0 -1
  60. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts +0 -3
  61. package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts.map +0 -1
  62. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts +0 -3
  63. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts.map +0 -1
  64. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts +0 -79
  65. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts.map +0 -1
  66. package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerLabels.json.d.ts +0 -185
  67. package/dist/types/src/SystemFolder/Finder/Finder.d.ts +0 -2
  68. package/dist/types/src/SystemFolder/Finder/Finder.d.ts.map +0 -1
  69. package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts +0 -3
  70. package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts.map +0 -1
  71. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts +0 -3
  72. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts.map +0 -1
  73. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts +0 -16
  74. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts.map +0 -1
  75. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts +0 -14
  76. package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts.map +0 -1
  77. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts +0 -13
  78. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts.map +0 -1
  79. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts +0 -10
  80. package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts.map +0 -1
  81. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts +0 -11
  82. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts.map +0 -1
  83. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts +0 -3
  84. package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts.map +0 -1
  85. package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts +0 -27
  86. package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts.map +0 -1
  87. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts +0 -13
  88. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts.map +0 -1
  89. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts +0 -21
  90. package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts.map +0 -1
  91. package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts +0 -3
  92. package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts.map +0 -1
  93. package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts +0 -12
  94. package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts.map +0 -1
  95. package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts +0 -12
  96. package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts.map +0 -1
  97. package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts +0 -10
  98. package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts.map +0 -1
  99. package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts +0 -9
  100. package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts.map +0 -1
  101. package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts +0 -17
  102. package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts.map +0 -1
  103. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts +0 -14
  104. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts.map +0 -1
  105. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts +0 -3
  106. package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts.map +0 -1
  107. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts +0 -7
  108. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts.map +0 -1
  109. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts +0 -14
  110. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts.map +0 -1
  111. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts +0 -5
  112. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts.map +0 -1
  113. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts +0 -30
  114. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts.map +0 -1
  115. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts +0 -108
  116. package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts.map +0 -1
  117. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts +0 -3
  118. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts.map +0 -1
  119. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts +0 -7
  120. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts.map +0 -1
  121. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts +0 -3
  122. package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts.map +0 -1
  123. package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts +0 -10
  124. package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts.map +0 -1
  125. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts +0 -13
  126. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts.map +0 -1
  127. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts +0 -7
  128. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts.map +0 -1
  129. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts +0 -12
  130. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts.map +0 -1
  131. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts +0 -14
  132. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts.map +0 -1
  133. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts +0 -29
  134. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts.map +0 -1
  135. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts +0 -37
  136. package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts.map +0 -1
  137. package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts +0 -94
  138. package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts.map +0 -1
  139. package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts +0 -14
  140. package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts.map +0 -1
  141. package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts +0 -15
  142. package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts.map +0 -1
  143. package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts +0 -29
  144. package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts.map +0 -1
  145. package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts +0 -18
  146. package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts.map +0 -1
  147. package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts +0 -1
  148. package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts.map +0 -1
  149. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts +0 -16
  150. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts.map +0 -1
  151. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts +0 -3
  152. package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts.map +0 -1
  153. package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts +0 -20
  154. package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts.map +0 -1
  155. package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts +0 -9
  156. package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts.map +0 -1
  157. package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts +0 -11
  158. package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts.map +0 -1
  159. package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts +0 -1
  160. package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts.map +0 -1
  161. package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts +0 -15
  162. package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts.map +0 -1
  163. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts +0 -29
  164. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts.map +0 -1
  165. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts +0 -19
  166. package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts.map +0 -1
  167. package/dist/types/src/index.d.ts +0 -58
  168. package/dist/types/src/index.d.ts.map +0 -1
  169. package/dist/types/vite.config.d.ts +0 -3
  170. package/dist/types/vite.config.d.ts.map +0 -1
@@ -1,503 +0,0 @@
1
- import H from "react";
2
- const V = "https://www.youtube.com/embed", D = "https://www.youtube-nocookie.com/embed", j = "https://www.youtube.com/iframe_api", Y = "YT", F = "onYouTubeIframeAPIReady", C = /(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})/, G = /(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/.*?[?&]list=)([\w_-]+)/;
3
- function R(i, e = {}) {
4
- var t;
5
- const n = {
6
- src: N(i, e),
7
- frameborder: 0,
8
- width: "100%",
9
- height: "100%",
10
- allow: "accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture"
11
- };
12
- return (t = e.config) != null && t.referrerpolicy && (n.referrerpolicy = e.config.referrerpolicy), e.config && (n["data-config"] = JSON.stringify(e.config)), /*html*/
13
- `
14
- <style>
15
- :host {
16
- display: inline-block;
17
- line-height: 0;
18
- position: relative;
19
- min-width: 300px;
20
- min-height: 150px;
21
- }
22
- iframe {
23
- position: absolute;
24
- top: 0;
25
- left: 0;
26
- }
27
- </style>
28
- <iframe${U(n)}></iframe>
29
- `;
30
- }
31
- function N(i, e) {
32
- if (!i.src) return;
33
- const t = i.src.includes("-nocookie") ? D : V, n = {
34
- // ?controls=true is enabled by default in the iframe
35
- controls: i.controls === "" ? null : 0,
36
- autoplay: i.autoplay,
37
- loop: i.loop,
38
- mute: i.muted,
39
- playsinline: i.playsinline,
40
- preload: i.preload ?? "metadata",
41
- // https://developers.google.com/youtube/player_parameters#Parameters
42
- // origin: globalThis.location?.origin,
43
- enablejsapi: 1,
44
- cc_load_policy: 1,
45
- showinfo: 0,
46
- rel: 0,
47
- iv_load_policy: 3,
48
- modestbranding: 1,
49
- ...e.config
50
- };
51
- if (C.test(i.src)) {
52
- const p = i.src.match(C), g = p && p[1];
53
- return `${t}/${g}?${M(n)}`;
54
- }
55
- const l = i.src.match(G), f = {
56
- listType: "playlist",
57
- list: l && l[1],
58
- ...n
59
- };
60
- return `${t}?${M(f)}`;
61
- }
62
- class x extends (globalThis.HTMLElement ?? class {
63
- }) {
64
- static getTemplateHTML = R;
65
- static shadowRootOptions = { mode: "open" };
66
- static observedAttributes = [
67
- "autoplay",
68
- "controls",
69
- "crossorigin",
70
- "loop",
71
- "muted",
72
- "playsinline",
73
- "poster",
74
- "preload",
75
- "src"
76
- ];
77
- loadComplete = new A();
78
- #o;
79
- #r;
80
- #t = 0;
81
- #i = !1;
82
- #e;
83
- isLoaded = !1;
84
- #l = null;
85
- #a = null;
86
- #s = null;
87
- #n = 1;
88
- constructor() {
89
- super(), this.#u("config");
90
- }
91
- get config() {
92
- return this.#a;
93
- }
94
- set config(e) {
95
- this.#a = e;
96
- }
97
- async load() {
98
- if (this.#o) return;
99
- this.shadowRoot || this.attachShadow({ mode: "open" });
100
- const e = !this.#r;
101
- this.#r && (this.loadComplete = new A(), this.isLoaded = !1), this.#r = !0, await (this.#o = Promise.resolve()), this.#o = null, this.#t = 0, this.dispatchEvent(new Event("emptied"));
102
- let t = this.api;
103
- if (this.api = null, !this.src) {
104
- t?.destroy();
105
- return;
106
- }
107
- this.#s = document.createElement("video"), this.textTracks = this.#s.textTracks, this.textTracks.addEventListener("change", () => {
108
- var s;
109
- const u = Array.from(this.textTracks).find((d) => d.mode === "showing");
110
- (s = this.api) == null || s.setOption("captions", "track", u ? { languageCode: u.language } : {});
111
- }), this.dispatchEvent(new Event("loadstart"));
112
- let n = this.shadowRoot.querySelector("iframe"), l = q(this.attributes);
113
- e && n && (this.#a = JSON.parse(n.getAttribute("data-config") || "{}")), (!n?.src || n.src !== N(l, this)) && (this.shadowRoot.innerHTML = R(l, this), n = this.shadowRoot.querySelector("iframe"));
114
- const a = await z(j, Y, F);
115
- this.api = new a.Player(n, {
116
- events: {
117
- onReady: () => {
118
- var s;
119
- this.#t = 1, this.dispatchEvent(new Event("loadedmetadata")), this.dispatchEvent(new Event("durationchange")), this.#n !== 1 && ((s = this.api) == null || s.setVolume(this.#n * 100)), this.dispatchEvent(new Event("volumechange")), this.dispatchEvent(new Event("loadcomplete")), this.isLoaded = !0, this.loadComplete.resolve();
120
- },
121
- onError: (s) => {
122
- console.error(s), this.#l = {
123
- code: s.data,
124
- message: `YouTube iframe player error #${s.data}; visit https://developers.google.com/youtube/iframe_api_reference#onError for the full error message.`
125
- }, this.dispatchEvent(new Event("error"));
126
- }
127
- }
128
- });
129
- let f = !1;
130
- this.api.addEventListener("onStateChange", (s) => {
131
- var u;
132
- const d = s.data;
133
- if ((d === a.PlayerState.PLAYING || d === a.PlayerState.BUFFERING) && (f || (f = !0, this.dispatchEvent(new Event("play"))), (this.api.getOption("captions", "tracklist") || []).forEach((h) => {
134
- [...this.textTracks].some((E) => E.language === h.languageCode) || this.#s.addTextTrack("subtitles", h.displayName, h.languageCode), this.textTracks = this.#s.textTracks;
135
- }), this.dispatchEvent(new Event("loadstart"))), d === a.PlayerState.PLAYING)
136
- this.seeking && (this.#i = !1, (u = this.#e) == null || u.resolve(), this.dispatchEvent(new Event("seeked"))), this.#t = 3, this.dispatchEvent(new Event("playing"));
137
- else if (d === a.PlayerState.PAUSED) {
138
- const b = Math.abs(this.currentTime - p);
139
- !this.seeking && b > 0.1 && (this.#i = !0, this.dispatchEvent(new Event("seeking"))), f = !1, this.dispatchEvent(new Event("pause"));
140
- }
141
- d === a.PlayerState.ENDED && (f = !1, this.dispatchEvent(new Event("pause")), this.dispatchEvent(new Event("ended")), this.loop && this.play());
142
- }), this.api.addEventListener("onPlaybackRateChange", () => {
143
- this.dispatchEvent(new Event("ratechange"));
144
- }), this.api.addEventListener("onVolumeChange", () => {
145
- var s;
146
- const u = ((s = this.api) == null ? void 0 : s.getVolume()) / 100;
147
- this.#n = u, this.dispatchEvent(new Event("volumechange"));
148
- }), this.api.addEventListener("onVideoProgress", () => {
149
- this.dispatchEvent(new Event("timeupdate"));
150
- }), await this.loadComplete;
151
- let p = 0;
152
- setInterval(() => {
153
- var s;
154
- const u = Math.abs(this.currentTime - p), d = this.buffered.end(this.buffered.length - 1);
155
- this.seeking && d > 0.1 ? (this.#i = !1, (s = this.#e) == null || s.resolve(), this.dispatchEvent(new Event("seeked"))) : !this.seeking && u > 0.1 && (this.#i = !0, this.dispatchEvent(new Event("seeking"))), p = this.currentTime;
156
- }, 50);
157
- let g;
158
- const w = setInterval(() => {
159
- const s = this.buffered.end(this.buffered.length - 1);
160
- s >= this.duration && (clearInterval(w), this.#t = 4), g != s && (g = s, this.dispatchEvent(new Event("progress")));
161
- }, 100);
162
- }
163
- async attributeChangedCallback(e, t, n) {
164
- if (t !== n)
165
- switch (e) {
166
- case "src":
167
- case "autoplay":
168
- case "controls":
169
- case "loop":
170
- case "playsinline":
171
- this.load();
172
- }
173
- }
174
- async play() {
175
- var e;
176
- return this.#e = null, await this.loadComplete, (e = this.api) == null || e.playVideo(), Q(this);
177
- }
178
- async pause() {
179
- var e;
180
- return await this.loadComplete, (e = this.api) == null ? void 0 : e.pauseVideo();
181
- }
182
- get seeking() {
183
- return this.#i;
184
- }
185
- get readyState() {
186
- return this.#t;
187
- }
188
- get src() {
189
- return this.getAttribute("src");
190
- }
191
- set src(e) {
192
- this.src != e && this.setAttribute("src", e);
193
- }
194
- get error() {
195
- return this.#l;
196
- }
197
- /* onStateChange
198
- -1 (unstarted)
199
- 0 (ended)
200
- 1 (playing)
201
- 2 (paused)
202
- 3 (buffering)
203
- 5 (video cued).
204
- */
205
- get paused() {
206
- var e, t;
207
- return this.isLoaded ? [-1, 0, 2, 5].includes((t = (e = this.api) == null ? void 0 : e.getPlayerState) == null ? void 0 : t.call(e)) : !this.autoplay;
208
- }
209
- get duration() {
210
- var e, t;
211
- return ((t = (e = this.api) == null ? void 0 : e.getDuration) == null ? void 0 : t.call(e)) ?? NaN;
212
- }
213
- get autoplay() {
214
- return this.hasAttribute("autoplay");
215
- }
216
- set autoplay(e) {
217
- this.autoplay != e && this.toggleAttribute("autoplay", !!e);
218
- }
219
- get buffered() {
220
- var e, t;
221
- if (!this.isLoaded) return P();
222
- const n = ((e = this.api) == null ? void 0 : e.getVideoLoadedFraction()) * ((t = this.api) == null ? void 0 : t.getDuration());
223
- return n > 0 ? P(0, n) : P();
224
- }
225
- get controls() {
226
- return this.hasAttribute("controls");
227
- }
228
- set controls(e) {
229
- this.controls != e && this.toggleAttribute("controls", !!e);
230
- }
231
- get currentTime() {
232
- var e, t;
233
- return ((t = (e = this.api) == null ? void 0 : e.getCurrentTime) == null ? void 0 : t.call(e)) ?? 0;
234
- }
235
- set currentTime(e) {
236
- this.currentTime != e && (this.#e = new A(), this.loadComplete.then(() => {
237
- var t, n;
238
- (t = this.api) == null || t.seekTo(e, !0), this.paused && ((n = this.#e) == null || n.then(() => {
239
- var l;
240
- this.#e && ((l = this.api) == null || l.pauseVideo());
241
- }));
242
- }));
243
- }
244
- set defaultMuted(e) {
245
- this.defaultMuted != e && this.toggleAttribute("muted", !!e);
246
- }
247
- get defaultMuted() {
248
- return this.hasAttribute("muted");
249
- }
250
- get loop() {
251
- return this.hasAttribute("loop");
252
- }
253
- set loop(e) {
254
- this.loop != e && this.toggleAttribute("loop", !!e);
255
- }
256
- set muted(e) {
257
- this.muted != e && this.loadComplete.then(() => {
258
- var t, n;
259
- e ? (t = this.api) == null || t.mute() : (n = this.api) == null || n.unMute();
260
- });
261
- }
262
- get muted() {
263
- var e, t;
264
- return this.isLoaded ? (t = (e = this.api) == null ? void 0 : e.isMuted) == null ? void 0 : t.call(e) : this.defaultMuted;
265
- }
266
- get playbackRate() {
267
- var e, t;
268
- return ((t = (e = this.api) == null ? void 0 : e.getPlaybackRate) == null ? void 0 : t.call(e)) ?? 1;
269
- }
270
- set playbackRate(e) {
271
- this.playbackRate != e && this.loadComplete.then(() => {
272
- var t;
273
- (t = this.api) == null || t.setPlaybackRate(e);
274
- });
275
- }
276
- get playsInline() {
277
- return this.hasAttribute("playsinline");
278
- }
279
- set playsInline(e) {
280
- this.playsInline != e && this.toggleAttribute("playsinline", !!e);
281
- }
282
- get poster() {
283
- return this.getAttribute("poster");
284
- }
285
- set poster(e) {
286
- this.poster != e && this.setAttribute("poster", `${e}`);
287
- }
288
- set volume(e) {
289
- this.volume != e && (this.#n = e, this.loadComplete.then(() => {
290
- var t;
291
- (t = this.api) == null || t.setVolume(e * 100);
292
- }));
293
- }
294
- get volume() {
295
- var e;
296
- return this.isLoaded ? ((e = this.api) == null ? void 0 : e.getVolume()) / 100 : this.#n;
297
- }
298
- // This is a pattern to update property values that are set before
299
- // the custom element is upgraded.
300
- // https://web.dev/custom-elements-best-practices/#make-properties-lazy
301
- #u(e) {
302
- if (Object.prototype.hasOwnProperty.call(this, e)) {
303
- const t = this[e];
304
- delete this[e], this[e] = t;
305
- }
306
- }
307
- }
308
- function U(i) {
309
- let e = "";
310
- for (const t in i) {
311
- const n = i[t];
312
- n === "" ? e += ` ${L(t)}` : e += ` ${L(t)}="${L(`${n}`)}"`;
313
- }
314
- return e;
315
- }
316
- function L(i) {
317
- return i.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/`/g, "&#x60;");
318
- }
319
- function M(i) {
320
- return String(new URLSearchParams(W(i)));
321
- }
322
- function W(i) {
323
- let e = {};
324
- for (let t in i) {
325
- let n = i[t];
326
- n === !0 || n === "" ? e[t] = 1 : n === !1 ? e[t] = 0 : n != null && (e[t] = n);
327
- }
328
- return e;
329
- }
330
- function q(i) {
331
- let e = {};
332
- for (let t of i)
333
- e[t.name] = t.value;
334
- return e;
335
- }
336
- const k = {};
337
- async function z(i, e, t) {
338
- return k[i] ? k[i] : self[e] ? (await J(0), self[e]) : k[i] = new Promise(function(n, l) {
339
- const a = document.createElement("script");
340
- a.src = i;
341
- const f = () => n(self[e]);
342
- self[t] = f, a.onload = () => !t, a.onerror = l, document.head.append(a);
343
- });
344
- }
345
- const J = (i) => new Promise((e) => setTimeout(e, i));
346
- function K(i) {
347
- return (...e) => new Promise((t) => {
348
- i(...e, (...n) => {
349
- n.length > 1 ? t(n) : t(n[0]);
350
- });
351
- });
352
- }
353
- function Q(i) {
354
- return K((e, t) => {
355
- let n;
356
- i.addEventListener(
357
- e,
358
- n = () => {
359
- i.removeEventListener(e, n), t();
360
- }
361
- );
362
- })("playing");
363
- }
364
- let A = class extends Promise {
365
- constructor(e = () => {
366
- }) {
367
- let t, n;
368
- super((l, a) => {
369
- e(l, a), t = l, n = a;
370
- }), this.resolve = t, this.reject = n;
371
- }
372
- };
373
- function P(i, e) {
374
- return Array.isArray(i) ? $(i) : i == null || e == null || i === 0 && e === 0 ? $([[0, 0]]) : $([[i, e]]);
375
- }
376
- function $(i) {
377
- return Object.defineProperties(i, {
378
- start: {
379
- value: (e) => i[e][0]
380
- },
381
- end: {
382
- value: (e) => i[e][1]
383
- }
384
- }), i;
385
- }
386
- globalThis.customElements && !globalThis.customElements.get("youtube-video") && globalThis.customElements.define("youtube-video", x);
387
- var X = x, Z = /* @__PURE__ */ new Set([
388
- "style",
389
- "children",
390
- "ref",
391
- "key",
392
- "suppressContentEditableWarning",
393
- "suppressHydrationWarning",
394
- "dangerouslySetInnerHTML"
395
- ]), ee = {
396
- className: "class",
397
- htmlFor: "for"
398
- };
399
- function B(i) {
400
- return i.toLowerCase();
401
- }
402
- function I(i) {
403
- if (typeof i == "boolean") return i ? "" : void 0;
404
- if (typeof i != "function" && !(typeof i == "object" && i !== null))
405
- return i;
406
- }
407
- function te({
408
- react: i,
409
- tagName: e,
410
- elementClass: t,
411
- events: n,
412
- displayName: l,
413
- defaultProps: a,
414
- toAttributeName: f = B,
415
- toAttributeValue: p = I
416
- }) {
417
- const g = Number.parseInt(i.version) >= 19, w = i.forwardRef((s, u) => {
418
- var d, b;
419
- const h = i.useRef(null), E = i.useRef(/* @__PURE__ */ new Map()), T = {}, S = {}, v = {}, _ = {};
420
- for (const [o, r] of Object.entries(s)) {
421
- if (Z.has(o)) {
422
- v[o] = r;
423
- continue;
424
- }
425
- const c = f(ee[o] ?? o);
426
- if (t.prototype && o in t.prototype && !(o in (((d = globalThis.HTMLElement) == null ? void 0 : d.prototype) ?? {})) && !((b = t.observedAttributes) != null && b.some((y) => y === c))) {
427
- _[o] = r;
428
- continue;
429
- }
430
- if (o.startsWith("on")) {
431
- T[o] = r;
432
- continue;
433
- }
434
- const m = p(r);
435
- if (c && m != null && (S[c] = String(m), g || (v[c] = m)), c && g) {
436
- const y = I(r);
437
- m !== y ? v[c] = m : v[c] = r;
438
- }
439
- }
440
- if (typeof window < "u") {
441
- for (const o in T) {
442
- const r = T[o], c = o.endsWith("Capture"), m = (n?.[o] ?? o.slice(2).toLowerCase()).slice(
443
- 0,
444
- c ? -7 : void 0
445
- );
446
- i.useLayoutEffect(() => {
447
- const y = h?.current;
448
- if (!(!y || typeof r != "function"))
449
- return y.addEventListener(m, r, c), () => {
450
- y.removeEventListener(m, r, c);
451
- };
452
- }, [h?.current, r]);
453
- }
454
- i.useLayoutEffect(() => {
455
- if (h.current === null) return;
456
- const o = /* @__PURE__ */ new Map();
457
- for (const r in _)
458
- O(h.current, r, _[r]), E.current.delete(r), o.set(r, _[r]);
459
- for (const [r, c] of E.current)
460
- O(h.current, r, void 0);
461
- E.current = o;
462
- });
463
- }
464
- if (typeof window > "u" && t?.getTemplateHTML && t?.shadowRootOptions) {
465
- const { mode: o, delegatesFocus: r } = t.shadowRootOptions, c = i.createElement("template", {
466
- shadowrootmode: o,
467
- shadowrootdelegatesfocus: r,
468
- dangerouslySetInnerHTML: {
469
- __html: t.getTemplateHTML(S, s)
470
- },
471
- key: "ce-la-react-ssr-template-shadow-root"
472
- });
473
- v.children = [c, v.children];
474
- }
475
- return i.createElement(e, {
476
- ...a,
477
- ...v,
478
- ref: i.useCallback(
479
- (o) => {
480
- h.current = o, typeof u == "function" ? u(o) : u !== null && (u.current = o);
481
- },
482
- [u]
483
- )
484
- }, v.children);
485
- });
486
- return w.displayName = l ?? t.name, w;
487
- }
488
- function O(i, e, t) {
489
- var n;
490
- i[e] = t, t == null && e in (((n = globalThis.HTMLElement) == null ? void 0 : n.prototype) ?? {}) && i.removeAttribute(e);
491
- }
492
- var se = te({
493
- react: H,
494
- tagName: "youtube-video",
495
- elementClass: X,
496
- toAttributeName(i) {
497
- return i === "muted" ? "" : i === "defaultMuted" ? "muted" : B(i);
498
- }
499
- });
500
- export {
501
- se as default
502
- };
503
- //# sourceMappingURL=react-_-oMoy3X.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-_-oMoy3X.js","sources":["../node_modules/youtube-video-element/dist/youtube-video-element.js","../node_modules/youtube-video-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://www.youtube.com/embed\";\nconst EMBED_BASE_NOCOOKIE = \"https://www.youtube-nocookie.com/embed\";\nconst API_URL = \"https://www.youtube.com/iframe_api\";\nconst API_GLOBAL = \"YT\";\nconst API_GLOBAL_READY = \"onYouTubeIframeAPIReady\";\nconst VIDEO_MATCH_SRC = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})/;\nconst PLAYLIST_MATCH_SRC = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/.*?[?&]list=)([\\w_-]+)/;\nfunction getTemplateHTML(attrs, props = {}) {\n var _a;\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: 0,\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n };\n if ((_a = props.config) == null ? void 0 : _a.referrerpolicy) {\n iframeAttrs.referrerpolicy = props.config.referrerpolicy;\n }\n if (props.config) {\n iframeAttrs[\"data-config\"] = JSON.stringify(props.config);\n }\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n line-height: 0;\n position: relative;\n min-width: 300px;\n min-height: 150px;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n if (!attrs.src) return;\n const embedBase = attrs.src.includes(\"-nocookie\") ? EMBED_BASE_NOCOOKIE : EMBED_BASE;\n const params = {\n // ?controls=true is enabled by default in the iframe\n controls: attrs.controls === \"\" ? null : 0,\n autoplay: attrs.autoplay,\n loop: attrs.loop,\n mute: attrs.muted,\n playsinline: attrs.playsinline,\n preload: attrs.preload ?? \"metadata\",\n // https://developers.google.com/youtube/player_parameters#Parameters\n // origin: globalThis.location?.origin,\n enablejsapi: 1,\n cc_load_policy: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1,\n ...props.config\n };\n if (VIDEO_MATCH_SRC.test(attrs.src)) {\n const matches2 = attrs.src.match(VIDEO_MATCH_SRC);\n const srcId = matches2 && matches2[1];\n return `${embedBase}/${srcId}?${serialize(params)}`;\n }\n const matches = attrs.src.match(PLAYLIST_MATCH_SRC);\n const playlistId = matches && matches[1];\n const extendedParams = {\n listType: \"playlist\",\n list: playlistId,\n ...params\n };\n return `${embedBase}?${serialize(extendedParams)}`;\n}\nclass YoutubeVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\n \"autoplay\",\n \"controls\",\n \"crossorigin\",\n \"loop\",\n \"muted\",\n \"playsinline\",\n \"poster\",\n \"preload\",\n \"src\"\n ];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #readyState = 0;\n #seeking = false;\n #seekComplete;\n isLoaded = false;\n #error = null;\n #config = null;\n #textTracksVideo = null;\n #initialVolume = 1;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n }\n const isFirstLoad = !this.#hasLoaded;\n if (this.#hasLoaded) {\n this.loadComplete = new PublicPromise();\n this.isLoaded = false;\n }\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#readyState = 0;\n this.dispatchEvent(new Event(\"emptied\"));\n let oldApi = this.api;\n this.api = null;\n if (!this.src) {\n oldApi == null ? void 0 : oldApi.destroy();\n return;\n }\n this.#textTracksVideo = document.createElement(\"video\");\n this.textTracks = this.#textTracksVideo.textTracks;\n this.textTracks.addEventListener(\"change\", () => {\n var _a;\n const active = Array.from(this.textTracks).find((t) => t.mode === \"showing\");\n (_a = this.api) == null ? void 0 : _a.setOption(\"captions\", \"track\", active ? { languageCode: active.language } : {});\n });\n this.dispatchEvent(new Event(\"loadstart\"));\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n let attrs = namedNodeMapToObject(this.attributes);\n if (isFirstLoad && iframe) {\n this.#config = JSON.parse(iframe.getAttribute(\"data-config\") || \"{}\");\n }\n if (!(iframe == null ? void 0 : iframe.src) || iframe.src !== serializeIframeUrl(attrs, this)) {\n this.shadowRoot.innerHTML = getTemplateHTML(attrs, this);\n iframe = this.shadowRoot.querySelector(\"iframe\");\n }\n const YT = await loadScript(API_URL, API_GLOBAL, API_GLOBAL_READY);\n this.api = new YT.Player(iframe, {\n events: {\n onReady: () => {\n var _a;\n this.#readyState = 1;\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n this.dispatchEvent(new Event(\"durationchange\"));\n if (this.#initialVolume !== 1) {\n (_a = this.api) == null ? void 0 : _a.setVolume(this.#initialVolume * 100);\n }\n this.dispatchEvent(new Event(\"volumechange\"));\n this.dispatchEvent(new Event(\"loadcomplete\"));\n this.isLoaded = true;\n this.loadComplete.resolve();\n },\n onError: (error) => {\n console.error(error);\n this.#error = {\n code: error.data,\n message: `YouTube iframe player error #${error.data}; visit https://developers.google.com/youtube/iframe_api_reference#onError for the full error message.`\n };\n this.dispatchEvent(new Event(\"error\"));\n }\n }\n });\n let playFired = false;\n this.api.addEventListener(\"onStateChange\", (event) => {\n var _a;\n const state = event.data;\n if (state === YT.PlayerState.PLAYING || state === YT.PlayerState.BUFFERING) {\n if (!playFired) {\n playFired = true;\n this.dispatchEvent(new Event(\"play\"));\n }\n const captionList = this.api.getOption(\"captions\", \"tracklist\") || [];\n captionList.forEach((t) => {\n if (![...this.textTracks].some((tt) => tt.language === t.languageCode)) {\n this.#textTracksVideo.addTextTrack(\"subtitles\", t.displayName, t.languageCode);\n }\n this.textTracks = this.#textTracksVideo.textTracks;\n });\n this.dispatchEvent(new Event(\"loadstart\"));\n }\n if (state === YT.PlayerState.PLAYING) {\n if (this.seeking) {\n this.#seeking = false;\n (_a = this.#seekComplete) == null ? void 0 : _a.resolve();\n this.dispatchEvent(new Event(\"seeked\"));\n }\n this.#readyState = 3;\n this.dispatchEvent(new Event(\"playing\"));\n } else if (state === YT.PlayerState.PAUSED) {\n const diff = Math.abs(this.currentTime - lastCurrentTime);\n if (!this.seeking && diff > 0.1) {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n }\n playFired = false;\n this.dispatchEvent(new Event(\"pause\"));\n }\n if (state === YT.PlayerState.ENDED) {\n playFired = false;\n this.dispatchEvent(new Event(\"pause\"));\n this.dispatchEvent(new Event(\"ended\"));\n if (this.loop) {\n this.play();\n }\n }\n });\n this.api.addEventListener(\"onPlaybackRateChange\", () => {\n this.dispatchEvent(new Event(\"ratechange\"));\n });\n this.api.addEventListener(\"onVolumeChange\", () => {\n var _a;\n const apiVolume = ((_a = this.api) == null ? void 0 : _a.getVolume()) / 100;\n this.#initialVolume = apiVolume;\n this.dispatchEvent(new Event(\"volumechange\"));\n });\n this.api.addEventListener(\"onVideoProgress\", () => {\n this.dispatchEvent(new Event(\"timeupdate\"));\n });\n await this.loadComplete;\n let lastCurrentTime = 0;\n setInterval(() => {\n var _a;\n const diff = Math.abs(this.currentTime - lastCurrentTime);\n const bufferedEnd = this.buffered.end(this.buffered.length - 1);\n if (this.seeking && bufferedEnd > 0.1) {\n this.#seeking = false;\n (_a = this.#seekComplete) == null ? void 0 : _a.resolve();\n this.dispatchEvent(new Event(\"seeked\"));\n } else if (!this.seeking && diff > 0.1) {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n }\n lastCurrentTime = this.currentTime;\n }, 50);\n let lastBufferedEnd;\n const progressInterval = setInterval(() => {\n const bufferedEnd = this.buffered.end(this.buffered.length - 1);\n if (bufferedEnd >= this.duration) {\n clearInterval(progressInterval);\n this.#readyState = 4;\n }\n if (lastBufferedEnd != bufferedEnd) {\n lastBufferedEnd = bufferedEnd;\n this.dispatchEvent(new Event(\"progress\"));\n }\n }, 100);\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\":\n case \"autoplay\":\n case \"controls\":\n case \"loop\":\n case \"playsinline\": {\n this.load();\n }\n }\n }\n async play() {\n var _a;\n this.#seekComplete = null;\n await this.loadComplete;\n (_a = this.api) == null ? void 0 : _a.playVideo();\n return createPlayPromise(this);\n }\n async pause() {\n var _a;\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.pauseVideo();\n }\n get seeking() {\n return this.#seeking;\n }\n get readyState() {\n return this.#readyState;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(val) {\n if (this.src == val) return;\n this.setAttribute(\"src\", val);\n }\n get error() {\n return this.#error;\n }\n /* onStateChange\n -1 (unstarted)\n 0 (ended)\n 1 (playing)\n 2 (paused)\n 3 (buffering)\n 5 (video cued).\n */\n get paused() {\n var _a, _b;\n if (!this.isLoaded) return !this.autoplay;\n return [-1, 0, 2, 5].includes((_b = (_a = this.api) == null ? void 0 : _a.getPlayerState) == null ? void 0 : _b.call(_a));\n }\n get duration() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getDuration) == null ? void 0 : _b.call(_a)) ?? NaN;\n }\n get autoplay() {\n return this.hasAttribute(\"autoplay\");\n }\n set autoplay(val) {\n if (this.autoplay == val) return;\n this.toggleAttribute(\"autoplay\", Boolean(val));\n }\n get buffered() {\n var _a, _b;\n if (!this.isLoaded) return createTimeRanges();\n const progress = ((_a = this.api) == null ? void 0 : _a.getVideoLoadedFraction()) * ((_b = this.api) == null ? void 0 : _b.getDuration());\n if (progress > 0) {\n return createTimeRanges(0, progress);\n }\n return createTimeRanges();\n }\n get controls() {\n return this.hasAttribute(\"controls\");\n }\n set controls(val) {\n if (this.controls == val) return;\n this.toggleAttribute(\"controls\", Boolean(val));\n }\n get currentTime() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getCurrentTime) == null ? void 0 : _b.call(_a)) ?? 0;\n }\n set currentTime(val) {\n if (this.currentTime == val) return;\n this.#seekComplete = new PublicPromise();\n this.loadComplete.then(() => {\n var _a, _b;\n (_a = this.api) == null ? void 0 : _a.seekTo(val, true);\n if (this.paused) {\n (_b = this.#seekComplete) == null ? void 0 : _b.then(() => {\n var _a2;\n if (!this.#seekComplete) return;\n (_a2 = this.api) == null ? void 0 : _a2.pauseVideo();\n });\n }\n });\n }\n set defaultMuted(val) {\n if (this.defaultMuted == val) return;\n this.toggleAttribute(\"muted\", Boolean(val));\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n if (this.loop == val) return;\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n set muted(val) {\n if (this.muted == val) return;\n this.loadComplete.then(() => {\n var _a, _b;\n val ? (_a = this.api) == null ? void 0 : _a.mute() : (_b = this.api) == null ? void 0 : _b.unMute();\n });\n }\n get muted() {\n var _a, _b;\n if (!this.isLoaded) return this.defaultMuted;\n return (_b = (_a = this.api) == null ? void 0 : _a.isMuted) == null ? void 0 : _b.call(_a);\n }\n get playbackRate() {\n var _a, _b;\n return ((_b = (_a = this.api) == null ? void 0 : _a.getPlaybackRate) == null ? void 0 : _b.call(_a)) ?? 1;\n }\n set playbackRate(val) {\n if (this.playbackRate == val) return;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.setPlaybackRate(val);\n });\n }\n get playsInline() {\n return this.hasAttribute(\"playsinline\");\n }\n set playsInline(val) {\n if (this.playsInline == val) return;\n this.toggleAttribute(\"playsinline\", Boolean(val));\n }\n get poster() {\n return this.getAttribute(\"poster\");\n }\n set poster(val) {\n if (this.poster == val) return;\n this.setAttribute(\"poster\", `${val}`);\n }\n set volume(val) {\n if (this.volume == val) return;\n this.#initialVolume = val;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.setVolume(val * 100);\n });\n }\n get volume() {\n var _a;\n if (!this.isLoaded) {\n return this.#initialVolume;\n }\n return ((_a = this.api) == null ? void 0 : _a.getVolume()) / 100;\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${escapeHtml(key)}`;\n else html += ` ${escapeHtml(key)}=\"${escapeHtml(`${value}`)}\"`;\n }\n return html;\n}\nfunction escapeHtml(str) {\n return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&apos;\").replace(/`/g, \"&#x60;\");\n}\nfunction serialize(props) {\n return String(new URLSearchParams(boolToBinary(props)));\n}\nfunction boolToBinary(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = 1;\n else if (val === false) p[key] = 0;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nconst loadScriptCache = {};\nasync function loadScript(src, globalName, readyFnName) {\n if (loadScriptCache[src]) return loadScriptCache[src];\n if (globalName && self[globalName]) {\n await delay(0);\n return self[globalName];\n }\n return loadScriptCache[src] = new Promise(function(resolve, reject) {\n const script = document.createElement(\"script\");\n script.src = src;\n const ready = () => resolve(self[globalName]);\n if (readyFnName) self[readyFnName] = ready;\n script.onload = () => !readyFnName && ready();\n script.onerror = reject;\n document.head.append(script);\n });\n}\nconst delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nfunction promisify(fn) {\n return (...args) => new Promise((resolve) => {\n fn(...args, (...res) => {\n if (res.length > 1) resolve(res);\n else resolve(res[0]);\n });\n });\n}\nfunction createPlayPromise(player) {\n return promisify((event, cb) => {\n let fn;\n player.addEventListener(\n event,\n fn = () => {\n player.removeEventListener(event, fn);\n cb();\n }\n );\n })(\"playing\");\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start == null || end == null || start === 0 && end === 0) {\n return createTimeRangesObj([[0, 0]]);\n }\n return createTimeRangesObj([[start, end]]);\n}\nfunction createTimeRangesObj(ranges) {\n Object.defineProperties(ranges, {\n start: {\n value: (i) => ranges[i][0]\n },\n end: {\n value: (i) => ranges[i][1]\n }\n });\n return ranges;\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"youtube-video\")) {\n globalThis.customElements.define(\"youtube-video\", YoutubeVideoElement);\n}\nvar youtube_video_element_default = YoutubeVideoElement;\nexport {\n youtube_video_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./youtube-video-element.js\";\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (elementClass.prototype && k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n },\n key: \"ce-la-react-ssr-template-shadow-root\"\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n }, reactProps.children);\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: React,\n tagName: \"youtube-video\",\n elementClass: CustomMediaElement,\n toAttributeName(propName) {\n if (propName === \"muted\") return \"\";\n if (propName === \"defaultMuted\") return \"muted\";\n return defaultToAttributeName(propName);\n }\n});\nexport {\n react_default as default\n};\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n"],"names":["EMBED_BASE","EMBED_BASE_NOCOOKIE","API_URL","API_GLOBAL","API_GLOBAL_READY","VIDEO_MATCH_SRC","PLAYLIST_MATCH_SRC","getTemplateHTML","attrs","props","_a","iframeAttrs","serializeIframeUrl","serializeAttributes","embedBase","params","matches2","srcId","serialize","matches","extendedParams","YoutubeVideoElement","PublicPromise","#loadRequested","#hasLoaded","#readyState","#seeking","#seekComplete","#error","#config","#textTracksVideo","#initialVolume","#upgradeProperty","value","isFirstLoad","oldApi","active","t","iframe","namedNodeMapToObject","YT","loadScript","error","playFired","event","state","tt","diff","lastCurrentTime","apiVolume","bufferedEnd","lastBufferedEnd","progressInterval","attrName","oldValue","newValue","createPlayPromise","val","_b","createTimeRanges","progress","_a2","prop","html","key","escapeHtml","str","boolToBinary","p","namedNodeMap","obj","attr","loadScriptCache","src","globalName","readyFnName","delay","resolve","reject","script","ready","ms","promisify","fn","args","res","player","cb","executor","rej","start","end","createTimeRangesObj","ranges","i","youtube_video_element_default","reservedReactProps","reactPropToAttrNameMap","defaultToAttributeName","propName","defaultToAttributeValue","propValue","createComponent","React2","tagName","elementClass","events","displayName","defaultProps","toAttributeName","toAttributeValue","IS_REACT_19_OR_NEWER","ReactComponent","ref","elementRef","prevElemPropsRef","eventProps","reactProps","elementProps","k","v","attrValue","attrValueFromDefault","callback","useCapture","eventName","eventTarget","newElemProps","setProperty","_value","mode","delegatesFocus","templateShadowRoot","node","name","react_default","React","CustomMediaElement"],"mappings":"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","x_google_ignoreList":[0,1]}