@sapia-ai/chatbot-v3 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/EmbeddedVideoPlayer-SaMMfDIW.js +1277 -0
  2. package/dist/EmbeddedVideoPlayer-SaMMfDIW.js.map +1 -0
  3. package/dist/Preview-Db-hgkTh.js +83 -0
  4. package/dist/Preview-Db-hgkTh.js.map +1 -0
  5. package/dist/api/client.d.ts +60 -0
  6. package/dist/api/config.d.ts +18 -0
  7. package/dist/api/constants.d.ts +5 -0
  8. package/dist/api/index.d.ts +5 -0
  9. package/dist/api/sse.d.ts +12 -0
  10. package/dist/api/types/branding.d.ts +17 -0
  11. package/dist/api/types/messages.d.ts +148 -0
  12. package/dist/api/types/responses.d.ts +106 -0
  13. package/dist/api.js +2 -0
  14. package/dist/classPrivateFieldSet2-DtQPURVD.js +32 -0
  15. package/dist/core/bubbles/convert.d.ts +18 -0
  16. package/dist/core/bubbles/types.d.ts +55 -0
  17. package/dist/core/constants.d.ts +14 -0
  18. package/dist/core/events.d.ts +44 -0
  19. package/dist/core/i18n/fallback.d.ts +2 -0
  20. package/dist/core/i18n/languages.d.ts +11 -0
  21. package/dist/core/i18n/translator.d.ts +13 -0
  22. package/dist/core/interview.d.ts +207 -0
  23. package/dist/core/media/mimeTypes.d.ts +10 -0
  24. package/dist/core/media/recorder.d.ts +61 -0
  25. package/dist/core/persistence.d.ts +4 -0
  26. package/dist/core/store.d.ts +49 -0
  27. package/dist/core/theme/branding.d.ts +6 -0
  28. package/dist/core/theme/cssVariables.d.ts +16 -0
  29. package/dist/core/theme/types.d.ts +11 -0
  30. package/dist/core/validation/phoneCountries.d.ts +21 -0
  31. package/dist/core/validation/pii.d.ts +30 -0
  32. package/dist/dash.all.min-DZ1yEcJk.js +27302 -0
  33. package/dist/dash.all.min-DZ1yEcJk.js.map +1 -0
  34. package/dist/defineProperty-DiFpLzd2.js +39 -0
  35. package/dist/dist-BSi28_cP.js +702 -0
  36. package/dist/dist-BSi28_cP.js.map +1 -0
  37. package/dist/dist-DGBYKC8c.js +14327 -0
  38. package/dist/dist-DGBYKC8c.js.map +1 -0
  39. package/dist/dist-FvHBWiRa.js +76 -0
  40. package/dist/dist-FvHBWiRa.js.map +1 -0
  41. package/dist/embed/compat.d.ts +82 -0
  42. package/dist/embed/constants.d.ts +2 -0
  43. package/dist/embed/createChatbot.d.ts +22 -0
  44. package/dist/fix-webm-duration-BW9Fbdzt.js +1057 -0
  45. package/dist/fix-webm-duration-BW9Fbdzt.js.map +1 -0
  46. package/dist/hls-mBncGwsE.js +18657 -0
  47. package/dist/hls-mBncGwsE.js.map +1 -0
  48. package/dist/index.d.ts +7 -0
  49. package/dist/index.js +4428 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/max-Btet1snX.js +12212 -0
  52. package/dist/max-Btet1snX.js.map +1 -0
  53. package/dist/messages-C4jqrtSG.js +187 -0
  54. package/dist/messages-C4jqrtSG.js.map +1 -0
  55. package/dist/react/AnswerInput.d.ts +21 -0
  56. package/dist/react/SapiaChatbot.d.ts +23 -0
  57. package/dist/react/bubbleViewModel.d.ts +50 -0
  58. package/dist/react/strings.d.ts +98 -0
  59. package/dist/react/useBeforeUnload.d.ts +5 -0
  60. package/dist/react/useVideoRecorder.d.ts +24 -0
  61. package/dist/react-BGJ7Szvq.js +216 -0
  62. package/dist/react-BGJ7Szvq.js.map +1 -0
  63. package/dist/react-BMxM8TWJ.js +192 -0
  64. package/dist/react-BMxM8TWJ.js.map +1 -0
  65. package/dist/react-BVzcquey.js +457 -0
  66. package/dist/react-BVzcquey.js.map +1 -0
  67. package/dist/react-BrCGR7Ca.js +2208 -0
  68. package/dist/react-BrCGR7Ca.js.map +1 -0
  69. package/dist/react-Bujo1aK5.js +334 -0
  70. package/dist/react-Bujo1aK5.js.map +1 -0
  71. package/dist/react-CRTg4gz8.js +367 -0
  72. package/dist/react-CRTg4gz8.js.map +1 -0
  73. package/dist/react-GXf8sbzf.js +311 -0
  74. package/dist/react-GXf8sbzf.js.map +1 -0
  75. package/dist/react-lp7yfM94.js +371 -0
  76. package/dist/react-lp7yfM94.js.map +1 -0
  77. package/dist/sapia-chatbot.css +3 -0
  78. package/dist/sapia.d.ts +4 -0
  79. package/dist/ui/chat/ChatBubble/ChatBubble.d.ts +47 -0
  80. package/dist/ui/chat/ChatLog/ChatLog.d.ts +33 -0
  81. package/dist/ui/chat/TypingIndicator/TypingIndicator.d.ts +17 -0
  82. package/dist/ui/chat/types.d.ts +71 -0
  83. package/dist/ui/constants.d.ts +2 -0
  84. package/dist/ui/inputs/DropdownInput/DropdownInput.d.ts +18 -0
  85. package/dist/ui/inputs/OptionList/OptionList.d.ts +18 -0
  86. package/dist/ui/inputs/PhoneAnswerInput/PhoneAnswerInput.d.ts +19 -0
  87. package/dist/ui/inputs/SliderInput/SliderInput.d.ts +19 -0
  88. package/dist/ui/inputs/TextAnswerInput/TextAnswerInput.d.ts +32 -0
  89. package/dist/ui/inputs/VideoRecorder/VideoRecorder.d.ts +54 -0
  90. package/dist/ui/media/EmbeddedVideo/EmbeddedVideo.d.ts +11 -0
  91. package/dist/ui/media/EmbeddedVideo/EmbeddedVideoPlayer.d.ts +16 -0
  92. package/dist/ui/media/EmbeddedVideo/VimeoPlayer.d.ts +20 -0
  93. package/dist/ui/media/UploadProgress/UploadProgress.d.ts +7 -0
  94. package/dist/ui/media/VideoPlayer/VideoPlayer.d.ts +13 -0
  95. package/dist/ui/primitives/Button/Button.d.ts +6 -0
  96. package/dist/ui/primitives/Dialog/Dialog.d.ts +16 -0
  97. package/dist/ui/richText.d.ts +6 -0
  98. package/dist/ui/shell/AccessVerificationForm/AccessVerificationForm.d.ts +21 -0
  99. package/dist/ui/shell/CopyLinkButton/CopyLinkButton.d.ts +11 -0
  100. package/dist/ui/shell/DoneScreen/DoneScreen.d.ts +15 -0
  101. package/dist/ui/shell/Header/Header.d.ts +13 -0
  102. package/dist/ui/shell/PreparingScreen/PreparingScreen.d.ts +9 -0
  103. package/dist/ui/shell/ProgressBar/ProgressBar.d.ts +9 -0
  104. package/dist/ui/shell/WelcomeScreen/WelcomeScreen.d.ts +22 -0
  105. package/dist/ui/shell/WidgetRoot/WidgetRoot.d.ts +12 -0
  106. package/dist-umd/sapia-chatbot.umd.js +3655 -0
  107. package/dist-umd/sapia-chatbot.umd.js.map +1 -0
  108. package/package.json +94 -0
@@ -0,0 +1,367 @@
1
+ import { a as e, i as t, n, r, t as i } from "./classPrivateFieldSet2-DtQPURVD.js";
2
+ import { t as a } from "./defineProperty-DiFpLzd2.js";
3
+ import o from "react";
4
+ //#region ../../node_modules/.pnpm/twitch-video-element@0.1.6/node_modules/twitch-video-element/dist/twitch-video-element.js
5
+ var s, c = "https://player.twitch.tv", l = /(?:www\.|go\.)?twitch\.tv\/(?:videos?\/|\?video=)(\d+)($|\?)/, u = /(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/, d = {
6
+ IDLE: "Idle",
7
+ READY: "Ready",
8
+ BUFFERING: "Buffering",
9
+ PLAYING: "Playing",
10
+ ENDED: "Ended"
11
+ }, f = {
12
+ DISABLE_CAPTIONS: 0,
13
+ ENABLE_CAPTIONS: 1,
14
+ PAUSE: 2,
15
+ PLAY: 3,
16
+ SEEK: 4,
17
+ SET_CHANNEL: 5,
18
+ SET_CHANNEL_ID: 6,
19
+ SET_COLLECTION: 7,
20
+ SET_QUALITY: 8,
21
+ SET_VIDEO: 9,
22
+ SET_MUTED: 10,
23
+ SET_VOLUME: 11
24
+ };
25
+ function p(e, t = {}) {
26
+ let n = {
27
+ src: m(e, t),
28
+ frameborder: "0",
29
+ width: "100%",
30
+ height: "100%",
31
+ allow: "accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;",
32
+ sandbox: "allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox",
33
+ scrolling: "no"
34
+ };
35
+ return t.config && (n["data-config"] = JSON.stringify(t.config)), `
36
+ <style>
37
+ :host {
38
+ display: inline-block;
39
+ min-width: 300px;
40
+ min-height: 150px;
41
+ position: relative;
42
+ }
43
+ iframe {
44
+ position: absolute;
45
+ top: 0;
46
+ left: 0;
47
+ width: 100%;
48
+ height: 100%;
49
+ }
50
+ :host(:not([controls])) {
51
+ pointer-events: none;
52
+ }
53
+ </style>
54
+ <iframe${M(n)}></iframe>
55
+ `;
56
+ }
57
+ function m(e, t) {
58
+ var n;
59
+ if (!e.src) return;
60
+ let r = e.src.match(l), i = e.src.match(u), a = {
61
+ parent: (n = globalThis.location) == null ? void 0 : n.hostname,
62
+ controls: e.controls === "" ? null : !1,
63
+ autoplay: e.autoplay === "" ? null : !1,
64
+ muted: e.muted,
65
+ preload: e.preload,
66
+ ...t.config
67
+ };
68
+ return r ? `${c}/?video=v${r[1]}&${P(a)}` : i ? `${c}/?channel=${i[1]}&${P(a)}` : "";
69
+ }
70
+ var h = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), _ = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap(), w = /* @__PURE__ */ new WeakMap(), T = /* @__PURE__ */ new WeakMap(), E = /* @__PURE__ */ new WeakMap(), D = /* @__PURE__ */ new WeakSet(), O = class extends ((s = globalThis.HTMLElement) == null ? class {} : s) {
71
+ constructor() {
72
+ super(), e(this, D), a(this, "loadComplete", new I()), t(this, h, void 0), t(this, g, void 0), t(this, _, void 0), t(this, v, {}), t(this, y, 0), t(this, b, !1), t(this, x, 1), t(this, S, !this.autoplay), t(this, C, !1), t(this, w, 0), t(this, T, null), t(this, E, async (e) => {
73
+ var t, r, a, o;
74
+ if (!n(_, this).contentWindow) return;
75
+ let { data: s, source: c } = e;
76
+ if (c === n(_, this).contentWindow) {
77
+ if (s.namespace === "twitch-embed") await new Promise((e) => setTimeout(e, 10)), s.eventName === "ready" ? (this.dispatchEvent(new Event("loadcomplete")), this.loadComplete.resolve(), i(w, this, 1), this.dispatchEvent(new Event("loadedmetadata"))) : s.eventName === "seek" ? (i(C, this, !0), this.dispatchEvent(new Event("seeking"))) : s.eventName === "playing" ? (n(C, this) && (i(C, this, !1), this.dispatchEvent(new Event("seeked"))), i(w, this, 3), this.dispatchEvent(new Event("playing"))) : this.dispatchEvent(new Event(s.eventName));
78
+ else if (s.namespace === "twitch-embed-player-proxy" && s.eventName === "UPDATE_STATE") {
79
+ let e = n(v, this).duration, c = n(v, this).currentTime, l = n(v, this).volume, u = n(v, this).muted, d = (r = (t = n(v, this).stats) == null ? void 0 : t.videoStats) == null ? void 0 : r.bufferSize;
80
+ i(v, this, {
81
+ ...n(v, this),
82
+ ...s.params
83
+ }), e !== n(v, this).duration && this.dispatchEvent(new Event("durationchange")), c !== n(v, this).currentTime && this.dispatchEvent(new Event("timeupdate")), (l !== n(v, this).volume || u !== n(v, this).muted) && (n(v, this).volume !== void 0 && i(x, this, n(v, this).volume), n(v, this).muted !== void 0 && i(b, this, n(v, this).muted), this.dispatchEvent(new Event("volumechange"))), d !== ((o = (a = n(v, this).stats) == null ? void 0 : a.videoStats) == null ? void 0 : o.bufferSize) && this.dispatchEvent(new Event("progress"));
84
+ }
85
+ }
86
+ }), r(D, this, A).call(this, "config");
87
+ }
88
+ get config() {
89
+ return n(T, this);
90
+ }
91
+ set config(e) {
92
+ i(T, this, e);
93
+ }
94
+ async load() {
95
+ if (n(h, this)) return;
96
+ this.shadowRoot || this.attachShadow({ mode: "open" });
97
+ let e = !n(g, this);
98
+ if (n(g, this) && (this.loadComplete = new I()), i(g, this, !0), await i(h, this, Promise.resolve()), i(h, this, null), i(w, this, 0), this.dispatchEvent(new Event("emptied")), !this.src) {
99
+ this.shadowRoot.innerHTML = "", globalThis.removeEventListener("message", n(E, this));
100
+ return;
101
+ }
102
+ this.dispatchEvent(new Event("loadstart"));
103
+ let t = this.shadowRoot.querySelector("iframe"), r = j(this.attributes);
104
+ e && t && i(T, this, JSON.parse(t.getAttribute("data-config") || "{}")), (!(t != null && t.src) || t.src !== m(r, this)) && (this.shadowRoot.innerHTML = p(r, this), t = this.shadowRoot.querySelector("iframe")), i(_, this, t), globalThis.addEventListener("message", n(E, this));
105
+ }
106
+ attributeChangedCallback(e, t, n) {
107
+ if (t !== n) switch (e) {
108
+ case "src":
109
+ case "controls":
110
+ this.load();
111
+ break;
112
+ }
113
+ }
114
+ getVideoPlaybackQuality() {
115
+ return n(v, this).stats.videoStats;
116
+ }
117
+ get src() {
118
+ return this.getAttribute("src");
119
+ }
120
+ set src(e) {
121
+ this.setAttribute("src", e);
122
+ }
123
+ get readyState() {
124
+ return n(w, this);
125
+ }
126
+ get seeking() {
127
+ return n(C, this);
128
+ }
129
+ get buffered() {
130
+ var e, t, r;
131
+ return L(0, (e = (r = (t = n(v, this).stats) == null ? void 0 : t.videoStats) == null ? void 0 : r.bufferSize) == null ? 0 : e);
132
+ }
133
+ get paused() {
134
+ return n(v, this).playback ? n(v, this).playback === d.IDLE : n(S, this);
135
+ }
136
+ get ended() {
137
+ return n(v, this).playback ? n(v, this).playback === d.ENDED : !1;
138
+ }
139
+ get duration() {
140
+ var e;
141
+ return (e = n(v, this).duration) == null ? NaN : e;
142
+ }
143
+ get autoplay() {
144
+ return this.hasAttribute("autoplay");
145
+ }
146
+ set autoplay(e) {
147
+ this.autoplay != e && this.toggleAttribute("autoplay", !!e);
148
+ }
149
+ get controls() {
150
+ return this.hasAttribute("controls");
151
+ }
152
+ set controls(e) {
153
+ this.controls != e && this.toggleAttribute("controls", !!e);
154
+ }
155
+ get currentTime() {
156
+ return n(v, this).currentTime ? n(v, this).currentTime : n(y, this);
157
+ }
158
+ set currentTime(e) {
159
+ i(y, this, e), this.loadComplete.then(() => {
160
+ r(D, this, k).call(this, f.SEEK, e);
161
+ });
162
+ }
163
+ get defaultMuted() {
164
+ return this.hasAttribute("muted");
165
+ }
166
+ set defaultMuted(e) {
167
+ this.toggleAttribute("muted", !!e);
168
+ }
169
+ get loop() {
170
+ return this.hasAttribute("loop");
171
+ }
172
+ set loop(e) {
173
+ this.toggleAttribute("loop", !!e);
174
+ }
175
+ get muted() {
176
+ return n(b, this);
177
+ }
178
+ set muted(e) {
179
+ i(b, this, e), this.loadComplete.then(() => {
180
+ r(D, this, k).call(this, f.SET_MUTED, e);
181
+ });
182
+ }
183
+ get volume() {
184
+ return n(x, this);
185
+ }
186
+ set volume(e) {
187
+ i(x, this, e), this.loadComplete.then(() => {
188
+ r(D, this, k).call(this, f.SET_VOLUME, e);
189
+ });
190
+ }
191
+ get playsInline() {
192
+ return this.hasAttribute("playsinline");
193
+ }
194
+ set playsInline(e) {
195
+ this.toggleAttribute("playsinline", !!e);
196
+ }
197
+ play() {
198
+ i(S, this, !1), r(D, this, k).call(this, f.PLAY);
199
+ }
200
+ pause() {
201
+ i(S, this, !0), r(D, this, k).call(this, f.PAUSE);
202
+ }
203
+ };
204
+ function k(e, t) {
205
+ if (!n(_, this).contentWindow) return;
206
+ let r = {
207
+ eventName: e,
208
+ params: t,
209
+ namespace: "twitch-embed-player-proxy"
210
+ };
211
+ n(_, this).contentWindow.postMessage(r, c);
212
+ }
213
+ function A(e) {
214
+ if (Object.prototype.hasOwnProperty.call(this, e)) {
215
+ let t = this[e];
216
+ delete this[e], this[e] = t;
217
+ }
218
+ }
219
+ a(O, "getTemplateHTML", p), a(O, "shadowRootOptions", { mode: "open" }), a(O, "observedAttributes", [
220
+ "autoplay",
221
+ "controls",
222
+ "loop",
223
+ "muted",
224
+ "playsinline",
225
+ "preload",
226
+ "src"
227
+ ]);
228
+ function j(e) {
229
+ let t = {};
230
+ for (let n of e) t[n.name] = n.value;
231
+ return t;
232
+ }
233
+ function M(e) {
234
+ let t = "";
235
+ for (let n in e) {
236
+ let r = e[n];
237
+ r === "" ? t += ` ${N(n)}` : t += ` ${N(n)}="${N(`${r}`)}"`;
238
+ }
239
+ return t;
240
+ }
241
+ function N(e) {
242
+ return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/`/g, "&#x60;");
243
+ }
244
+ function P(e) {
245
+ return String(new URLSearchParams(F(e)));
246
+ }
247
+ function F(e) {
248
+ let t = {};
249
+ for (let n in e) {
250
+ let r = e[n];
251
+ r === !0 || r === "" ? t[n] = !0 : r === !1 ? t[n] = !1 : r != null && (t[n] = r);
252
+ }
253
+ return t;
254
+ }
255
+ var I = class extends Promise {
256
+ constructor(e = () => {}) {
257
+ let t, n;
258
+ super((r, i) => {
259
+ e(r, i), t = r, n = i;
260
+ }), this.resolve = t, this.reject = n;
261
+ }
262
+ };
263
+ function L(e, t) {
264
+ return R(Array.isArray(e) ? e : e == null || t == null || e === 0 && t === 0 ? [[0, 0]] : [[e, t]]);
265
+ }
266
+ function R(e) {
267
+ return Object.defineProperties(e, {
268
+ start: { value: (t) => e[t][0] },
269
+ end: { value: (t) => e[t][1] }
270
+ }), e;
271
+ }
272
+ globalThis.customElements && !globalThis.customElements.get("twitch-video") && globalThis.customElements.define("twitch-video", O);
273
+ var z = O, B = /* @__PURE__ */ new Set([
274
+ "style",
275
+ "children",
276
+ "ref",
277
+ "key",
278
+ "suppressContentEditableWarning",
279
+ "suppressHydrationWarning",
280
+ "dangerouslySetInnerHTML"
281
+ ]), V = {
282
+ className: "class",
283
+ htmlFor: "for"
284
+ };
285
+ function H(e) {
286
+ return e.toLowerCase();
287
+ }
288
+ function U(e) {
289
+ if (typeof e == "boolean") return e ? "" : void 0;
290
+ if (typeof e != "function" && !(typeof e == "object" && e)) return e;
291
+ }
292
+ function W({ react: e, tagName: t, elementClass: n, events: r, displayName: i, defaultProps: a, toAttributeName: o = H, toAttributeValue: s = U }) {
293
+ let c = Number.parseInt(e.version) >= 19, l = e.forwardRef((i, l) => {
294
+ var u, d;
295
+ let f = e.useRef(null), p = e.useRef(/* @__PURE__ */ new Map()), m = {}, h = {}, g = {}, _ = {};
296
+ for (let [e, t] of Object.entries(i)) {
297
+ var v, y;
298
+ if (B.has(e)) {
299
+ g[e] = t;
300
+ continue;
301
+ }
302
+ let r = o((v = V[e]) == null ? e : v);
303
+ if (n.prototype && e in n.prototype && !(e in ((y = (u = globalThis.HTMLElement) == null ? void 0 : u.prototype) == null ? {} : y)) && !((d = n.observedAttributes) != null && d.some((e) => e === r))) {
304
+ _[e] = t;
305
+ continue;
306
+ }
307
+ if (e.startsWith("on")) {
308
+ m[e] = t;
309
+ continue;
310
+ }
311
+ let i = s(t);
312
+ r && i != null && (h[r] = String(i), c || (g[r] = i)), r && c && (i === U(t) ? g[r] = t : g[r] = i);
313
+ }
314
+ if (typeof window < "u") {
315
+ for (let t in m) {
316
+ var b;
317
+ let n = m[t], i = t.endsWith("Capture"), a = ((b = r == null ? void 0 : r[t]) == null ? t.slice(2).toLowerCase() : b).slice(0, i ? -7 : void 0);
318
+ e.useLayoutEffect(() => {
319
+ let e = f == null ? void 0 : f.current;
320
+ if (!(!e || typeof n != "function")) return e.addEventListener(a, n, i), () => {
321
+ e.removeEventListener(a, n, i);
322
+ };
323
+ }, [f == null ? void 0 : f.current, n]);
324
+ }
325
+ e.useLayoutEffect(() => {
326
+ if (f.current === null) return;
327
+ let e = /* @__PURE__ */ new Map();
328
+ for (let t in _) G(f.current, t, _[t]), p.current.delete(t), e.set(t, _[t]);
329
+ for (let [e, t] of p.current) G(f.current, e, void 0);
330
+ p.current = e;
331
+ });
332
+ }
333
+ if (typeof window > "u" && n != null && n.getTemplateHTML && n != null && n.shadowRootOptions) {
334
+ let { mode: t, delegatesFocus: r } = n.shadowRootOptions;
335
+ g.children = [e.createElement("template", {
336
+ shadowrootmode: t,
337
+ shadowrootdelegatesfocus: r,
338
+ dangerouslySetInnerHTML: { __html: n.getTemplateHTML(h, i) },
339
+ key: "ce-la-react-ssr-template-shadow-root"
340
+ }), g.children];
341
+ }
342
+ return e.createElement(t, {
343
+ ...a,
344
+ ...g,
345
+ ref: e.useCallback((e) => {
346
+ f.current = e, typeof l == "function" ? l(e) : l !== null && (l.current = e);
347
+ }, [l])
348
+ }, g.children);
349
+ });
350
+ return l.displayName = i == null ? n.name : i, l;
351
+ }
352
+ function G(e, t, n) {
353
+ var r, i;
354
+ e[t] = n, n == null && t in ((r = (i = globalThis.HTMLElement) == null ? void 0 : i.prototype) == null ? {} : r) && e.removeAttribute(t);
355
+ }
356
+ var K = W({
357
+ react: o,
358
+ tagName: "twitch-video",
359
+ elementClass: z,
360
+ toAttributeName(e) {
361
+ return e === "muted" ? "" : e === "defaultMuted" ? "muted" : H(e);
362
+ }
363
+ });
364
+ //#endregion
365
+ export { K as default };
366
+
367
+ //# sourceMappingURL=react-CRTg4gz8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-CRTg4gz8.js","names":["CustomMediaElement"],"sources":["../../../node_modules/.pnpm/twitch-video-element@0.1.6/node_modules/twitch-video-element/dist/twitch-video-element.js","../../../node_modules/.pnpm/twitch-video-element@0.1.6/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"],"x_google_ignoreList":[0,1],"mappings":"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"}