classicy 0.6.2 → 0.6.9

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 -4
  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,402 +0,0 @@
1
- import W from "react";
2
- const L = "https://player.twitch.tv", x = /(?:www\.|go\.)?twitch\.tv\/(?:videos?\/|\?video=)(\d+)($|\?)/, U = /(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/, $ = {
3
- IDLE: "Idle",
4
- ENDED: "Ended"
5
- }, v = {
6
- PAUSE: 2,
7
- PLAY: 3,
8
- SEEK: 4,
9
- SET_MUTED: 10,
10
- SET_VOLUME: 11
11
- };
12
- function N(e, t = {}) {
13
- const i = {
14
- src: O(e, t),
15
- frameborder: "0",
16
- width: "100%",
17
- height: "100%",
18
- allow: "accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;",
19
- sandbox: "allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox",
20
- scrolling: "no"
21
- };
22
- return t.config && (i["data-config"] = JSON.stringify(t.config)), /*html*/
23
- `
24
- <style>
25
- :host {
26
- display: inline-block;
27
- min-width: 300px;
28
- min-height: 150px;
29
- position: relative;
30
- }
31
- iframe {
32
- position: absolute;
33
- top: 0;
34
- left: 0;
35
- width: 100%;
36
- height: 100%;
37
- }
38
- :host(:not([controls])) {
39
- pointer-events: none;
40
- }
41
- </style>
42
- <iframe${B(i)}></iframe>
43
- `;
44
- }
45
- function O(e, t) {
46
- var i;
47
- if (!e.src) return;
48
- const s = e.src.match(x), l = e.src.match(U), u = {
49
- parent: (i = globalThis.location) == null ? void 0 : i.hostname,
50
- // ?controls=true is enabled by default in the iframe
51
- controls: e.controls === "" ? null : !1,
52
- autoplay: e.autoplay === "" ? null : !1,
53
- muted: e.muted,
54
- preload: e.preload,
55
- ...t.config
56
- };
57
- if (s) {
58
- const r = s[1];
59
- return `${L}/?video=v${r}&${k(u)}`;
60
- } else if (l) {
61
- const r = l[1];
62
- return `${L}/?channel=${r}&${k(u)}`;
63
- }
64
- return "";
65
- }
66
- class D extends (globalThis.HTMLElement ?? class {
67
- }) {
68
- static getTemplateHTML = N;
69
- static shadowRootOptions = { mode: "open" };
70
- static observedAttributes = ["autoplay", "controls", "loop", "muted", "playsinline", "preload", "src"];
71
- loadComplete = new H();
72
- #o;
73
- #r;
74
- #e;
75
- #t = {};
76
- #h = 0;
77
- #a = !1;
78
- #l = 1;
79
- #u = !this.autoplay;
80
- #s = !1;
81
- #n = 0;
82
- #c = null;
83
- constructor() {
84
- super(), this.#f("config");
85
- }
86
- get config() {
87
- return this.#c;
88
- }
89
- set config(t) {
90
- this.#c = t;
91
- }
92
- async load() {
93
- if (this.#o) return;
94
- this.shadowRoot || this.attachShadow({ mode: "open" });
95
- const t = !this.#r;
96
- if (this.#r && (this.loadComplete = new H()), this.#r = !0, await (this.#o = Promise.resolve()), this.#o = null, this.#n = 0, this.dispatchEvent(new Event("emptied")), !this.src) {
97
- this.shadowRoot.innerHTML = "", globalThis.removeEventListener("message", this.#d);
98
- return;
99
- }
100
- this.dispatchEvent(new Event("loadstart"));
101
- let i = this.shadowRoot.querySelector("iframe");
102
- const s = j(this.attributes);
103
- t && i && (this.#c = JSON.parse(i.getAttribute("data-config") || "{}")), (!i?.src || i.src !== O(s, this)) && (this.shadowRoot.innerHTML = N(s, this), i = this.shadowRoot.querySelector("iframe")), this.#e = i, globalThis.addEventListener("message", this.#d);
104
- }
105
- attributeChangedCallback(t, i, s) {
106
- if (i !== s)
107
- switch (t) {
108
- case "src":
109
- case "controls": {
110
- this.load();
111
- break;
112
- }
113
- }
114
- }
115
- getVideoPlaybackQuality() {
116
- return this.#t.stats.videoStats;
117
- }
118
- get src() {
119
- return this.getAttribute("src");
120
- }
121
- set src(t) {
122
- this.setAttribute("src", t);
123
- }
124
- get readyState() {
125
- return this.#n;
126
- }
127
- get seeking() {
128
- return this.#s;
129
- }
130
- get buffered() {
131
- var t, i;
132
- return F(0, ((i = (t = this.#t.stats) == null ? void 0 : t.videoStats) == null ? void 0 : i.bufferSize) ?? 0);
133
- }
134
- get paused() {
135
- return this.#t.playback ? this.#t.playback === $.IDLE : this.#u;
136
- }
137
- get ended() {
138
- return this.#t.playback ? this.#t.playback === $.ENDED : !1;
139
- }
140
- get duration() {
141
- return this.#t.duration ?? NaN;
142
- }
143
- get autoplay() {
144
- return this.hasAttribute("autoplay");
145
- }
146
- set autoplay(t) {
147
- this.autoplay != t && this.toggleAttribute("autoplay", !!t);
148
- }
149
- get controls() {
150
- return this.hasAttribute("controls");
151
- }
152
- set controls(t) {
153
- this.controls != t && this.toggleAttribute("controls", !!t);
154
- }
155
- get currentTime() {
156
- return this.#t.currentTime ? this.#t.currentTime : this.#h;
157
- }
158
- set currentTime(t) {
159
- this.#h = t, this.loadComplete.then(() => {
160
- this.#i(v.SEEK, t);
161
- });
162
- }
163
- get defaultMuted() {
164
- return this.hasAttribute("muted");
165
- }
166
- set defaultMuted(t) {
167
- this.toggleAttribute("muted", !!t);
168
- }
169
- get loop() {
170
- return this.hasAttribute("loop");
171
- }
172
- set loop(t) {
173
- this.toggleAttribute("loop", !!t);
174
- }
175
- get muted() {
176
- return this.#a;
177
- }
178
- set muted(t) {
179
- this.#a = t, this.loadComplete.then(() => {
180
- this.#i(v.SET_MUTED, t);
181
- });
182
- }
183
- get volume() {
184
- return this.#l;
185
- }
186
- set volume(t) {
187
- this.#l = t, this.loadComplete.then(() => {
188
- this.#i(v.SET_VOLUME, t);
189
- });
190
- }
191
- get playsInline() {
192
- return this.hasAttribute("playsinline");
193
- }
194
- set playsInline(t) {
195
- this.toggleAttribute("playsinline", !!t);
196
- }
197
- play() {
198
- this.#u = !1, this.#i(v.PLAY);
199
- }
200
- pause() {
201
- this.#u = !0, this.#i(v.PAUSE);
202
- }
203
- #d = async (t) => {
204
- var i, s, l, u;
205
- if (!this.#e.contentWindow) return;
206
- const { data: r, source: b } = t;
207
- if (b === this.#e.contentWindow) {
208
- if (r.namespace === "twitch-embed")
209
- await new Promise((p) => setTimeout(p, 10)), r.eventName === "ready" ? (this.dispatchEvent(new Event("loadcomplete")), this.loadComplete.resolve(), this.#n = 1, this.dispatchEvent(new Event("loadedmetadata"))) : r.eventName === "seek" ? (this.#s = !0, this.dispatchEvent(new Event("seeking"))) : r.eventName === "playing" ? (this.#s && (this.#s = !1, this.dispatchEvent(new Event("seeked"))), this.#n = 3, this.dispatchEvent(new Event("playing"))) : this.dispatchEvent(new Event(r.eventName));
210
- else if (r.namespace === "twitch-embed-player-proxy" && r.eventName === "UPDATE_STATE") {
211
- const p = this.#t.duration, g = this.#t.currentTime, f = this.#t.volume, w = this.#t.muted, E = (s = (i = this.#t.stats) == null ? void 0 : i.videoStats) == null ? void 0 : s.bufferSize;
212
- this.#t = { ...this.#t, ...r.params }, p !== this.#t.duration && this.dispatchEvent(new Event("durationchange")), g !== this.#t.currentTime && this.dispatchEvent(new Event("timeupdate")), (f !== this.#t.volume || w !== this.#t.muted) && (this.#t.volume !== void 0 && (this.#l = this.#t.volume), this.#t.muted !== void 0 && (this.#a = this.#t.muted), this.dispatchEvent(new Event("volumechange"))), E !== ((u = (l = this.#t.stats) == null ? void 0 : l.videoStats) == null ? void 0 : u.bufferSize) && this.dispatchEvent(new Event("progress"));
213
- }
214
- }
215
- };
216
- #i(t, i) {
217
- if (!this.#e.contentWindow) return;
218
- const s = {
219
- eventName: t,
220
- params: i,
221
- namespace: "twitch-embed-player-proxy"
222
- };
223
- this.#e.contentWindow.postMessage(s, L);
224
- }
225
- // This is a pattern to update property values that are set before
226
- // the custom element is upgraded.
227
- // https://web.dev/custom-elements-best-practices/#make-properties-lazy
228
- #f(t) {
229
- if (Object.prototype.hasOwnProperty.call(this, t)) {
230
- const i = this[t];
231
- delete this[t], this[t] = i;
232
- }
233
- }
234
- }
235
- function j(e) {
236
- let t = {};
237
- for (let i of e)
238
- t[i.name] = i.value;
239
- return t;
240
- }
241
- function B(e) {
242
- let t = "";
243
- for (const i in e) {
244
- const s = e[i];
245
- s === "" ? t += ` ${_(i)}` : t += ` ${_(i)}="${_(`${s}`)}"`;
246
- }
247
- return t;
248
- }
249
- function _(e) {
250
- return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/`/g, "&#x60;");
251
- }
252
- function k(e) {
253
- return String(new URLSearchParams(z(e)));
254
- }
255
- function z(e) {
256
- let t = {};
257
- for (let i in e) {
258
- let s = e[i];
259
- s === !0 || s === "" ? t[i] = !0 : s === !1 ? t[i] = !1 : s != null && (t[i] = s);
260
- }
261
- return t;
262
- }
263
- let H = class extends Promise {
264
- constructor(t = () => {
265
- }) {
266
- let i, s;
267
- super((l, u) => {
268
- t(l, u), i = l, s = u;
269
- }), this.resolve = i, this.reject = s;
270
- }
271
- };
272
- function F(e, t) {
273
- return Array.isArray(e) ? M(e) : t == null || t === 0 ? M([[0, 0]]) : M([[e, t]]);
274
- }
275
- function M(e) {
276
- return Object.defineProperties(e, {
277
- start: {
278
- value: (t) => e[t][0]
279
- },
280
- end: {
281
- value: (t) => e[t][1]
282
- }
283
- }), e;
284
- }
285
- globalThis.customElements && !globalThis.customElements.get("twitch-video") && globalThis.customElements.define("twitch-video", D);
286
- var q = D, V = /* @__PURE__ */ new Set([
287
- "style",
288
- "children",
289
- "ref",
290
- "key",
291
- "suppressContentEditableWarning",
292
- "suppressHydrationWarning",
293
- "dangerouslySetInnerHTML"
294
- ]), J = {
295
- className: "class",
296
- htmlFor: "for"
297
- };
298
- function I(e) {
299
- return e.toLowerCase();
300
- }
301
- function R(e) {
302
- if (typeof e == "boolean") return e ? "" : void 0;
303
- if (typeof e != "function" && !(typeof e == "object" && e !== null))
304
- return e;
305
- }
306
- function K({
307
- react: e,
308
- tagName: t,
309
- elementClass: i,
310
- events: s,
311
- displayName: l,
312
- defaultProps: u,
313
- toAttributeName: r = I,
314
- toAttributeValue: b = R
315
- }) {
316
- const T = Number.parseInt(e.version) >= 19, p = e.forwardRef((g, f) => {
317
- var w, E;
318
- const c = e.useRef(null), A = e.useRef(/* @__PURE__ */ new Map()), S = {}, P = {}, h = {}, y = {};
319
- for (const [n, o] of Object.entries(g)) {
320
- if (V.has(n)) {
321
- h[n] = o;
322
- continue;
323
- }
324
- const a = r(J[n] ?? n);
325
- if (i.prototype && n in i.prototype && !(n in (((w = globalThis.HTMLElement) == null ? void 0 : w.prototype) ?? {})) && !((E = i.observedAttributes) != null && E.some((m) => m === a))) {
326
- y[n] = o;
327
- continue;
328
- }
329
- if (n.startsWith("on")) {
330
- S[n] = o;
331
- continue;
332
- }
333
- const d = b(o);
334
- if (a && d != null && (P[a] = String(d), T || (h[a] = d)), a && T) {
335
- const m = R(o);
336
- d !== m ? h[a] = d : h[a] = o;
337
- }
338
- }
339
- if (typeof window < "u") {
340
- for (const n in S) {
341
- const o = S[n], a = n.endsWith("Capture"), d = (s?.[n] ?? n.slice(2).toLowerCase()).slice(
342
- 0,
343
- a ? -7 : void 0
344
- );
345
- e.useLayoutEffect(() => {
346
- const m = c?.current;
347
- if (!(!m || typeof o != "function"))
348
- return m.addEventListener(d, o, a), () => {
349
- m.removeEventListener(d, o, a);
350
- };
351
- }, [c?.current, o]);
352
- }
353
- e.useLayoutEffect(() => {
354
- if (c.current === null) return;
355
- const n = /* @__PURE__ */ new Map();
356
- for (const o in y)
357
- C(c.current, o, y[o]), A.current.delete(o), n.set(o, y[o]);
358
- for (const [o, a] of A.current)
359
- C(c.current, o, void 0);
360
- A.current = n;
361
- });
362
- }
363
- if (typeof window > "u" && i?.getTemplateHTML && i?.shadowRootOptions) {
364
- const { mode: n, delegatesFocus: o } = i.shadowRootOptions, a = e.createElement("template", {
365
- shadowrootmode: n,
366
- shadowrootdelegatesfocus: o,
367
- dangerouslySetInnerHTML: {
368
- __html: i.getTemplateHTML(P, g)
369
- },
370
- key: "ce-la-react-ssr-template-shadow-root"
371
- });
372
- h.children = [a, h.children];
373
- }
374
- return e.createElement(t, {
375
- ...u,
376
- ...h,
377
- ref: e.useCallback(
378
- (n) => {
379
- c.current = n, typeof f == "function" ? f(n) : f !== null && (f.current = n);
380
- },
381
- [f]
382
- )
383
- }, h.children);
384
- });
385
- return p.displayName = l ?? i.name, p;
386
- }
387
- function C(e, t, i) {
388
- var s;
389
- e[t] = i, i == null && t in (((s = globalThis.HTMLElement) == null ? void 0 : s.prototype) ?? {}) && e.removeAttribute(t);
390
- }
391
- var Z = K({
392
- react: W,
393
- tagName: "twitch-video",
394
- elementClass: q,
395
- toAttributeName(e) {
396
- return e === "muted" ? "" : e === "defaultMuted" ? "muted" : I(e);
397
- }
398
- });
399
- export {
400
- Z as default
401
- };
402
- //# sourceMappingURL=react-BzHiAeII.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-BzHiAeII.js","sources":["../node_modules/twitch-video-element/dist/twitch-video-element.js","../node_modules/twitch-video-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://player.twitch.tv\";\nconst MATCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/(?:videos?\\/|\\?video=)(\\d+)($|\\?)/;\nconst MATCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst PlaybackState = {\n IDLE: \"Idle\",\n READY: \"Ready\",\n BUFFERING: \"Buffering\",\n PLAYING: \"Playing\",\n ENDED: \"Ended\"\n};\nconst PlayerCommands = {\n DISABLE_CAPTIONS: 0,\n ENABLE_CAPTIONS: 1,\n PAUSE: 2,\n PLAY: 3,\n SEEK: 4,\n SET_CHANNEL: 5,\n SET_CHANNEL_ID: 6,\n SET_COLLECTION: 7,\n SET_QUALITY: 8,\n SET_VIDEO: 9,\n SET_MUTED: 10,\n SET_VOLUME: 11\n};\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: \"0\",\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;\",\n sandbox: \"allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\",\n scrolling: \"no\"\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 min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n :host(:not([controls])) {\n pointer-events: none;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n var _a;\n if (!attrs.src) return;\n const videoMatch = attrs.src.match(MATCH_VIDEO);\n const channelMatch = attrs.src.match(MATCH_CHANNEL);\n const params = {\n parent: (_a = globalThis.location) == null ? void 0 : _a.hostname,\n // ?controls=true is enabled by default in the iframe\n controls: attrs.controls === \"\" ? null : false,\n autoplay: attrs.autoplay === \"\" ? null : false,\n muted: attrs.muted,\n preload: attrs.preload,\n ...props.config\n };\n if (videoMatch) {\n const videoId = videoMatch[1];\n return `${EMBED_BASE}/?video=v${videoId}&${serialize(params)}`;\n } else if (channelMatch) {\n const channel = channelMatch[1];\n return `${EMBED_BASE}/?channel=${channel}&${serialize(params)}`;\n }\n return \"\";\n}\nclass TwitchVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\"autoplay\", \"controls\", \"loop\", \"muted\", \"playsinline\", \"preload\", \"src\"];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #iframe;\n #playerState = {};\n #currentTime = 0;\n #muted = false;\n #volume = 1;\n #paused = !this.autoplay;\n #seeking = false;\n #readyState = 0;\n #config = null;\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 }\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 if (!this.src) {\n this.shadowRoot.innerHTML = \"\";\n globalThis.removeEventListener(\"message\", this.#onMessage);\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const 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 this.#iframe = iframe;\n globalThis.addEventListener(\"message\", this.#onMessage);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\":\n case \"controls\": {\n this.load();\n break;\n }\n }\n }\n getVideoPlaybackQuality() {\n return this.#playerState.stats.videoStats;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n this.setAttribute(\"src\", value);\n }\n get readyState() {\n return this.#readyState;\n }\n get seeking() {\n return this.#seeking;\n }\n get buffered() {\n var _a, _b;\n return createTimeRanges(0, ((_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize) ?? 0);\n }\n get paused() {\n if (!this.#playerState.playback) return this.#paused;\n return this.#playerState.playback === PlaybackState.IDLE;\n }\n get ended() {\n if (!this.#playerState.playback) return false;\n return this.#playerState.playback === PlaybackState.ENDED;\n }\n get duration() {\n return this.#playerState.duration ?? 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 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 if (!this.#playerState.currentTime) return this.#currentTime;\n return this.#playerState.currentTime;\n }\n set currentTime(val) {\n this.#currentTime = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SEEK, val);\n });\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n set defaultMuted(val) {\n this.toggleAttribute(\"muted\", Boolean(val));\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n get muted() {\n return this.#muted;\n }\n set muted(val) {\n this.#muted = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_MUTED, val);\n });\n }\n get volume() {\n return this.#volume;\n }\n set volume(val) {\n this.#volume = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_VOLUME, val);\n });\n }\n get playsInline() {\n return this.hasAttribute(\"playsinline\");\n }\n set playsInline(val) {\n this.toggleAttribute(\"playsinline\", Boolean(val));\n }\n play() {\n this.#paused = false;\n this.#sendCommand(PlayerCommands.PLAY);\n }\n pause() {\n this.#paused = true;\n this.#sendCommand(PlayerCommands.PAUSE);\n }\n #onMessage = async (event) => {\n var _a, _b, _c, _d;\n if (!this.#iframe.contentWindow) return;\n const { data, source } = event;\n const isFromEmbedWindow = source === this.#iframe.contentWindow;\n if (!isFromEmbedWindow) return;\n if (data.namespace === \"twitch-embed\") {\n await new Promise((resolve) => setTimeout(resolve, 10));\n if (data.eventName === \"ready\") {\n this.dispatchEvent(new Event(\"loadcomplete\"));\n this.loadComplete.resolve();\n this.#readyState = 1;\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n } else if (data.eventName === \"seek\") {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n } else if (data.eventName === \"playing\") {\n if (this.#seeking) {\n this.#seeking = false;\n this.dispatchEvent(new Event(\"seeked\"));\n }\n this.#readyState = 3;\n this.dispatchEvent(new Event(\"playing\"));\n } else {\n this.dispatchEvent(new Event(data.eventName));\n }\n } else if (data.namespace === \"twitch-embed-player-proxy\" && data.eventName === \"UPDATE_STATE\") {\n const oldDuration = this.#playerState.duration;\n const oldCurrentTime = this.#playerState.currentTime;\n const oldVolume = this.#playerState.volume;\n const oldMuted = this.#playerState.muted;\n const oldBuffered = (_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize;\n this.#playerState = { ...this.#playerState, ...data.params };\n if (oldDuration !== this.#playerState.duration) {\n this.dispatchEvent(new Event(\"durationchange\"));\n }\n if (oldCurrentTime !== this.#playerState.currentTime) {\n this.dispatchEvent(new Event(\"timeupdate\"));\n }\n if (oldVolume !== this.#playerState.volume || oldMuted !== this.#playerState.muted) {\n if (this.#playerState.volume !== void 0) {\n this.#volume = this.#playerState.volume;\n }\n if (this.#playerState.muted !== void 0) {\n this.#muted = this.#playerState.muted;\n }\n this.dispatchEvent(new Event(\"volumechange\"));\n }\n if (oldBuffered !== ((_d = (_c = this.#playerState.stats) == null ? void 0 : _c.videoStats) == null ? void 0 : _d.bufferSize)) {\n this.dispatchEvent(new Event(\"progress\"));\n }\n }\n };\n #sendCommand(command, params) {\n if (!this.#iframe.contentWindow) return;\n const message = {\n eventName: command,\n params,\n namespace: \"twitch-embed-player-proxy\"\n };\n this.#iframe.contentWindow.postMessage(message, EMBED_BASE);\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 namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\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(filterParams(props)));\n}\nfunction filterParams(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = true;\n else if (val === false) p[key] = false;\n else if (val != null) p[key] = val;\n }\n return p;\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(\"twitch-video\")) {\n globalThis.customElements.define(\"twitch-video\", TwitchVideoElement);\n}\nvar twitch_video_element_default = TwitchVideoElement;\nexport {\n twitch_video_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./twitch-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: \"twitch-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","MATCH_VIDEO","MATCH_CHANNEL","PlaybackState","PlayerCommands","getTemplateHTML","attrs","props","iframeAttrs","serializeIframeUrl","serializeAttributes","_a","videoMatch","channelMatch","params","videoId","serialize","channel","TwitchVideoElement","PublicPromise","#loadRequested","#hasLoaded","#iframe","#playerState","#currentTime","#muted","#volume","#paused","#seeking","#readyState","#config","#upgradeProperty","value","isFirstLoad","#onMessage","iframe","namedNodeMapToObject","attrName","oldValue","newValue","_b","createTimeRanges","val","#sendCommand","event","_c","_d","data","source","resolve","oldDuration","oldCurrentTime","oldVolume","oldMuted","oldBuffered","command","message","prop","namedNodeMap","obj","attr","html","key","escapeHtml","str","filterParams","p","executor","res","rej","reject","start","end","createTimeRangesObj","ranges","i","twitch_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]}