@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.
- package/dist/EmbeddedVideoPlayer-SaMMfDIW.js +1277 -0
- package/dist/EmbeddedVideoPlayer-SaMMfDIW.js.map +1 -0
- package/dist/Preview-Db-hgkTh.js +83 -0
- package/dist/Preview-Db-hgkTh.js.map +1 -0
- package/dist/api/client.d.ts +60 -0
- package/dist/api/config.d.ts +18 -0
- package/dist/api/constants.d.ts +5 -0
- package/dist/api/index.d.ts +5 -0
- package/dist/api/sse.d.ts +12 -0
- package/dist/api/types/branding.d.ts +17 -0
- package/dist/api/types/messages.d.ts +148 -0
- package/dist/api/types/responses.d.ts +106 -0
- package/dist/api.js +2 -0
- package/dist/classPrivateFieldSet2-DtQPURVD.js +32 -0
- package/dist/core/bubbles/convert.d.ts +18 -0
- package/dist/core/bubbles/types.d.ts +55 -0
- package/dist/core/constants.d.ts +14 -0
- package/dist/core/events.d.ts +44 -0
- package/dist/core/i18n/fallback.d.ts +2 -0
- package/dist/core/i18n/languages.d.ts +11 -0
- package/dist/core/i18n/translator.d.ts +13 -0
- package/dist/core/interview.d.ts +207 -0
- package/dist/core/media/mimeTypes.d.ts +10 -0
- package/dist/core/media/recorder.d.ts +61 -0
- package/dist/core/persistence.d.ts +4 -0
- package/dist/core/store.d.ts +49 -0
- package/dist/core/theme/branding.d.ts +6 -0
- package/dist/core/theme/cssVariables.d.ts +16 -0
- package/dist/core/theme/types.d.ts +11 -0
- package/dist/core/validation/phoneCountries.d.ts +21 -0
- package/dist/core/validation/pii.d.ts +30 -0
- package/dist/dash.all.min-DZ1yEcJk.js +27302 -0
- package/dist/dash.all.min-DZ1yEcJk.js.map +1 -0
- package/dist/defineProperty-DiFpLzd2.js +39 -0
- package/dist/dist-BSi28_cP.js +702 -0
- package/dist/dist-BSi28_cP.js.map +1 -0
- package/dist/dist-DGBYKC8c.js +14327 -0
- package/dist/dist-DGBYKC8c.js.map +1 -0
- package/dist/dist-FvHBWiRa.js +76 -0
- package/dist/dist-FvHBWiRa.js.map +1 -0
- package/dist/embed/compat.d.ts +82 -0
- package/dist/embed/constants.d.ts +2 -0
- package/dist/embed/createChatbot.d.ts +22 -0
- package/dist/fix-webm-duration-BW9Fbdzt.js +1057 -0
- package/dist/fix-webm-duration-BW9Fbdzt.js.map +1 -0
- package/dist/hls-mBncGwsE.js +18657 -0
- package/dist/hls-mBncGwsE.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +4428 -0
- package/dist/index.js.map +1 -0
- package/dist/max-Btet1snX.js +12212 -0
- package/dist/max-Btet1snX.js.map +1 -0
- package/dist/messages-C4jqrtSG.js +187 -0
- package/dist/messages-C4jqrtSG.js.map +1 -0
- package/dist/react/AnswerInput.d.ts +21 -0
- package/dist/react/SapiaChatbot.d.ts +23 -0
- package/dist/react/bubbleViewModel.d.ts +50 -0
- package/dist/react/strings.d.ts +98 -0
- package/dist/react/useBeforeUnload.d.ts +5 -0
- package/dist/react/useVideoRecorder.d.ts +24 -0
- package/dist/react-BGJ7Szvq.js +216 -0
- package/dist/react-BGJ7Szvq.js.map +1 -0
- package/dist/react-BMxM8TWJ.js +192 -0
- package/dist/react-BMxM8TWJ.js.map +1 -0
- package/dist/react-BVzcquey.js +457 -0
- package/dist/react-BVzcquey.js.map +1 -0
- package/dist/react-BrCGR7Ca.js +2208 -0
- package/dist/react-BrCGR7Ca.js.map +1 -0
- package/dist/react-Bujo1aK5.js +334 -0
- package/dist/react-Bujo1aK5.js.map +1 -0
- package/dist/react-CRTg4gz8.js +367 -0
- package/dist/react-CRTg4gz8.js.map +1 -0
- package/dist/react-GXf8sbzf.js +311 -0
- package/dist/react-GXf8sbzf.js.map +1 -0
- package/dist/react-lp7yfM94.js +371 -0
- package/dist/react-lp7yfM94.js.map +1 -0
- package/dist/sapia-chatbot.css +3 -0
- package/dist/sapia.d.ts +4 -0
- package/dist/ui/chat/ChatBubble/ChatBubble.d.ts +47 -0
- package/dist/ui/chat/ChatLog/ChatLog.d.ts +33 -0
- package/dist/ui/chat/TypingIndicator/TypingIndicator.d.ts +17 -0
- package/dist/ui/chat/types.d.ts +71 -0
- package/dist/ui/constants.d.ts +2 -0
- package/dist/ui/inputs/DropdownInput/DropdownInput.d.ts +18 -0
- package/dist/ui/inputs/OptionList/OptionList.d.ts +18 -0
- package/dist/ui/inputs/PhoneAnswerInput/PhoneAnswerInput.d.ts +19 -0
- package/dist/ui/inputs/SliderInput/SliderInput.d.ts +19 -0
- package/dist/ui/inputs/TextAnswerInput/TextAnswerInput.d.ts +32 -0
- package/dist/ui/inputs/VideoRecorder/VideoRecorder.d.ts +54 -0
- package/dist/ui/media/EmbeddedVideo/EmbeddedVideo.d.ts +11 -0
- package/dist/ui/media/EmbeddedVideo/EmbeddedVideoPlayer.d.ts +16 -0
- package/dist/ui/media/EmbeddedVideo/VimeoPlayer.d.ts +20 -0
- package/dist/ui/media/UploadProgress/UploadProgress.d.ts +7 -0
- package/dist/ui/media/VideoPlayer/VideoPlayer.d.ts +13 -0
- package/dist/ui/primitives/Button/Button.d.ts +6 -0
- package/dist/ui/primitives/Dialog/Dialog.d.ts +16 -0
- package/dist/ui/richText.d.ts +6 -0
- package/dist/ui/shell/AccessVerificationForm/AccessVerificationForm.d.ts +21 -0
- package/dist/ui/shell/CopyLinkButton/CopyLinkButton.d.ts +11 -0
- package/dist/ui/shell/DoneScreen/DoneScreen.d.ts +15 -0
- package/dist/ui/shell/Header/Header.d.ts +13 -0
- package/dist/ui/shell/PreparingScreen/PreparingScreen.d.ts +9 -0
- package/dist/ui/shell/ProgressBar/ProgressBar.d.ts +9 -0
- package/dist/ui/shell/WelcomeScreen/WelcomeScreen.d.ts +22 -0
- package/dist/ui/shell/WidgetRoot/WidgetRoot.d.ts +12 -0
- package/dist-umd/sapia-chatbot.umd.js +3655 -0
- package/dist-umd/sapia-chatbot.umd.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,311 @@
|
|
|
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/spotify-audio-element@1.0.4/node_modules/spotify-audio-element/dist/spotify-audio-element.js
|
|
5
|
+
var s, c = "https://open.spotify.com", l = /open\.spotify\.com\/(\w+)\/(\w+)/i, u = "https://open.spotify.com/embed-podcast/iframe-api/v1", d = "SpotifyIframeApi", f = "onSpotifyIframeApiReady";
|
|
6
|
+
function p(e, t = {}) {
|
|
7
|
+
return `
|
|
8
|
+
<style>
|
|
9
|
+
:host {
|
|
10
|
+
display: inline-block;
|
|
11
|
+
min-width: 160px;
|
|
12
|
+
min-height: 80px;
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
iframe {
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 0;
|
|
18
|
+
left: 0;
|
|
19
|
+
width: 100%;
|
|
20
|
+
height: 100%;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
}
|
|
23
|
+
:host(:not([controls])) {
|
|
24
|
+
display: none !important;
|
|
25
|
+
}
|
|
26
|
+
</style>
|
|
27
|
+
<iframe${O({
|
|
28
|
+
src: m(e, t),
|
|
29
|
+
scrolling: "no",
|
|
30
|
+
frameborder: 0,
|
|
31
|
+
width: "100%",
|
|
32
|
+
height: "100%",
|
|
33
|
+
allow: "accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
|
34
|
+
})}></iframe>
|
|
35
|
+
`;
|
|
36
|
+
}
|
|
37
|
+
function m(e, t) {
|
|
38
|
+
var n, r, i;
|
|
39
|
+
if (!e.src) return;
|
|
40
|
+
let a = e.src.match(l), o = a && a[1], s = a && a[2], u = {
|
|
41
|
+
t: (n = t.config) == null ? void 0 : n.startAt,
|
|
42
|
+
theme: ((r = t.config) == null ? void 0 : r.theme) === "dark" ? "0" : null
|
|
43
|
+
};
|
|
44
|
+
return `${c}/embed/${o}/${s}${(i = t.config) != null && i.preferVideo ? "/video" : ""}?${k(u)}`;
|
|
45
|
+
}
|
|
46
|
+
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 WeakSet(), E = class extends ((s = globalThis.HTMLElement) == null ? class {} : s) {
|
|
47
|
+
constructor() {
|
|
48
|
+
super(), e(this, T), a(this, "loadComplete", new P()), t(this, h, void 0), t(this, g, void 0), t(this, _, void 0), t(this, v, !1), t(this, y, !1), t(this, b, !0), t(this, x, 0), t(this, S, NaN), t(this, C, !1), t(this, w, null), r(T, this, D).call(this, "config");
|
|
49
|
+
}
|
|
50
|
+
async load() {
|
|
51
|
+
var e, t, r;
|
|
52
|
+
if (n(h, this)) return;
|
|
53
|
+
n(g, this) && (this.loadComplete = new P()), i(g, this, !0), await i(h, this, Promise.resolve()), i(h, this, null), i(v, this, !1), i(y, this, !1), i(x, this, 0), i(S, this, NaN), i(C, this, !1), this.dispatchEvent(new Event("emptied"));
|
|
54
|
+
let a = this.api;
|
|
55
|
+
if (this.api = null, !this.src) return;
|
|
56
|
+
this.dispatchEvent(new Event("loadstart"));
|
|
57
|
+
let o = {
|
|
58
|
+
t: (e = this.config) == null ? void 0 : e.startAt,
|
|
59
|
+
theme: ((t = this.config) == null ? void 0 : t.theme) === "dark" ? "0" : null,
|
|
60
|
+
preferVideo: (r = this.config) == null ? void 0 : r.preferVideo
|
|
61
|
+
};
|
|
62
|
+
if (n(_, this)) this.api = a, this.api.iframeElement.src = m(j(this.attributes), this);
|
|
63
|
+
else {
|
|
64
|
+
i(_, this, !0), this.shadowRoot || (this.attachShadow({ mode: "open" }), this.shadowRoot.innerHTML = p(j(this.attributes), this));
|
|
65
|
+
let e = this.shadowRoot.querySelector("iframe"), t = await N(u, d, f);
|
|
66
|
+
this.api = await new Promise((n) => t.createController(e, o, n)), this.api.iframeElement = e, this.api.addListener("ready", () => {
|
|
67
|
+
this.dispatchEvent(new Event("loadedmetadata")), this.dispatchEvent(new Event("durationchange")), this.dispatchEvent(new Event("volumechange"));
|
|
68
|
+
}), this.api.addListener("playback_update", (e) => {
|
|
69
|
+
if (n(y, this) && n(b, this) && (e.data.isBuffering || !e.data.isPaused)) {
|
|
70
|
+
i(y, this, !1), this.currentTime = 1;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (e.data.duration / 1e3 !== n(S, this) && (i(y, this, !1), i(S, this, e.data.duration / 1e3), this.dispatchEvent(new Event("durationchange"))), e.data.position / 1e3 !== n(x, this) && (i(C, this, !1), i(y, this, !1), i(x, this, e.data.position / 1e3), this.dispatchEvent(new Event("timeupdate"))), !n(v, this) && !n(b, this) && e.data.isPaused) {
|
|
74
|
+
i(b, this, !0), this.dispatchEvent(new Event("pause"));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (n(b, this) && (e.data.isBuffering || !e.data.isPaused)) {
|
|
78
|
+
i(b, this, !1), this.dispatchEvent(new Event("play")), i(v, this, e.data.isBuffering), n(v, this) ? this.dispatchEvent(new Event("waiting")) : this.dispatchEvent(new Event("playing"));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (n(v, this) && !e.data.isPaused) {
|
|
82
|
+
i(v, this, !1), this.dispatchEvent(new Event("playing"));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (!this.paused && !this.seeking && !n(y, this) && Math.ceil(this.currentTime) >= this.duration) {
|
|
86
|
+
if (i(y, this, !0), this.loop) {
|
|
87
|
+
this.currentTime = 1;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.continuous || (this.pause(), this.dispatchEvent(new Event("ended")));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
this.loadComplete.resolve(), await this.loadComplete;
|
|
96
|
+
}
|
|
97
|
+
async attributeChangedCallback(e, t, n) {
|
|
98
|
+
if (t !== n) switch (e) {
|
|
99
|
+
case "src":
|
|
100
|
+
this.load();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async play() {
|
|
105
|
+
var e;
|
|
106
|
+
return i(b, this, !1), i(v, this, !0), this.dispatchEvent(new Event("play")), await this.loadComplete, (e = this.api) == null ? void 0 : e.resume();
|
|
107
|
+
}
|
|
108
|
+
async pause() {
|
|
109
|
+
var e;
|
|
110
|
+
return await this.loadComplete, (e = this.api) == null ? void 0 : e.pause();
|
|
111
|
+
}
|
|
112
|
+
get config() {
|
|
113
|
+
return n(w, this);
|
|
114
|
+
}
|
|
115
|
+
set config(e) {
|
|
116
|
+
i(w, this, e);
|
|
117
|
+
}
|
|
118
|
+
get paused() {
|
|
119
|
+
var e;
|
|
120
|
+
return (e = n(b, this)) == null ? !0 : e;
|
|
121
|
+
}
|
|
122
|
+
get muted() {
|
|
123
|
+
return !1;
|
|
124
|
+
}
|
|
125
|
+
set muted(e) {}
|
|
126
|
+
get volume() {
|
|
127
|
+
return 1;
|
|
128
|
+
}
|
|
129
|
+
set volume(e) {}
|
|
130
|
+
get ended() {
|
|
131
|
+
return Math.ceil(this.currentTime) >= this.duration;
|
|
132
|
+
}
|
|
133
|
+
get seeking() {
|
|
134
|
+
return n(C, this);
|
|
135
|
+
}
|
|
136
|
+
get loop() {
|
|
137
|
+
return this.hasAttribute("loop");
|
|
138
|
+
}
|
|
139
|
+
set loop(e) {
|
|
140
|
+
this.loop != e && this.toggleAttribute("loop", !!e);
|
|
141
|
+
}
|
|
142
|
+
get currentTime() {
|
|
143
|
+
return n(x, this);
|
|
144
|
+
}
|
|
145
|
+
set currentTime(e) {
|
|
146
|
+
if (this.currentTime == e) return;
|
|
147
|
+
i(C, this, !0);
|
|
148
|
+
let t = n(x, this);
|
|
149
|
+
i(x, this, e), this.dispatchEvent(new Event("timeupdate")), i(x, this, t), this.loadComplete.then(() => {
|
|
150
|
+
var t;
|
|
151
|
+
(t = this.api) == null || t.seek(e);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
get duration() {
|
|
155
|
+
return n(S, this);
|
|
156
|
+
}
|
|
157
|
+
get src() {
|
|
158
|
+
return this.getAttribute("src");
|
|
159
|
+
}
|
|
160
|
+
set src(e) {
|
|
161
|
+
this.setAttribute("src", `${e}`);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
function D(e) {
|
|
165
|
+
if (Object.prototype.hasOwnProperty.call(this, e)) {
|
|
166
|
+
let t = this[e];
|
|
167
|
+
delete this[e], this[e] = t;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
a(E, "getTemplateHTML", p), a(E, "shadowRootOptions", { mode: "open" }), a(E, "observedAttributes", [
|
|
171
|
+
"controls",
|
|
172
|
+
"loop",
|
|
173
|
+
"src"
|
|
174
|
+
]);
|
|
175
|
+
function O(e) {
|
|
176
|
+
let t = "";
|
|
177
|
+
for (let n in e) {
|
|
178
|
+
let r = e[n];
|
|
179
|
+
r === "" ? t += ` ${n}` : t += ` ${n}="${r}"`;
|
|
180
|
+
}
|
|
181
|
+
return t;
|
|
182
|
+
}
|
|
183
|
+
function k(e) {
|
|
184
|
+
return String(new URLSearchParams(A(e)));
|
|
185
|
+
}
|
|
186
|
+
function A(e) {
|
|
187
|
+
let t = {};
|
|
188
|
+
for (let n in e) {
|
|
189
|
+
let r = e[n];
|
|
190
|
+
r === !0 || r === "" ? t[n] = 1 : r === !1 ? t[n] = 0 : r != null && (t[n] = r);
|
|
191
|
+
}
|
|
192
|
+
return t;
|
|
193
|
+
}
|
|
194
|
+
function j(e) {
|
|
195
|
+
let t = {};
|
|
196
|
+
for (let n of e) t[n.name] = n.value;
|
|
197
|
+
return t;
|
|
198
|
+
}
|
|
199
|
+
var M = {};
|
|
200
|
+
async function N(e, t, n) {
|
|
201
|
+
return M[e] ? M[e] : t && self[t] ? Promise.resolve(self[t]) : M[e] = new Promise(function(t, r) {
|
|
202
|
+
let i = document.createElement("script");
|
|
203
|
+
i.src = e;
|
|
204
|
+
let a = (e) => t(e);
|
|
205
|
+
n && (self[n] = a), i.onload = () => !n && a(), i.onerror = r, document.head.append(i);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
var P = class extends Promise {
|
|
209
|
+
constructor(e = () => {}) {
|
|
210
|
+
let t, n;
|
|
211
|
+
super((r, i) => {
|
|
212
|
+
e(r, i), t = r, n = i;
|
|
213
|
+
}), this.resolve = t, this.reject = n;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
globalThis.customElements && !globalThis.customElements.get("spotify-audio") && globalThis.customElements.define("spotify-audio", E);
|
|
217
|
+
var F = E, I = /* @__PURE__ */ new Set([
|
|
218
|
+
"style",
|
|
219
|
+
"children",
|
|
220
|
+
"ref",
|
|
221
|
+
"key",
|
|
222
|
+
"suppressContentEditableWarning",
|
|
223
|
+
"suppressHydrationWarning",
|
|
224
|
+
"dangerouslySetInnerHTML"
|
|
225
|
+
]), L = {
|
|
226
|
+
className: "class",
|
|
227
|
+
htmlFor: "for"
|
|
228
|
+
};
|
|
229
|
+
function R(e) {
|
|
230
|
+
return e.toLowerCase();
|
|
231
|
+
}
|
|
232
|
+
function z(e) {
|
|
233
|
+
if (typeof e == "boolean") return e ? "" : void 0;
|
|
234
|
+
if (typeof e != "function" && !(typeof e == "object" && e)) return e;
|
|
235
|
+
}
|
|
236
|
+
function B({ react: e, tagName: t, elementClass: n, events: r, displayName: i, defaultProps: a, toAttributeName: o = R, toAttributeValue: s = z }) {
|
|
237
|
+
let c = Number.parseInt(e.version) >= 19, l = e.forwardRef((i, l) => {
|
|
238
|
+
var u, d;
|
|
239
|
+
let f = e.useRef(null), p = e.useRef(/* @__PURE__ */ new Map()), m = {}, h = {}, g = {}, _ = {};
|
|
240
|
+
for (let [e, t] of Object.entries(i)) {
|
|
241
|
+
var v, y;
|
|
242
|
+
if (I.has(e)) {
|
|
243
|
+
g[e] = t;
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
let r = o((v = L[e]) == null ? e : v);
|
|
247
|
+
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))) {
|
|
248
|
+
_[e] = t;
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (e.startsWith("on")) {
|
|
252
|
+
m[e] = t;
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
let i = s(t);
|
|
256
|
+
r && i != null && (h[r] = String(i), c || (g[r] = i)), r && c && (i === z(t) ? g[r] = t : g[r] = i);
|
|
257
|
+
}
|
|
258
|
+
if (typeof window < "u") {
|
|
259
|
+
for (let t in m) {
|
|
260
|
+
var b;
|
|
261
|
+
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);
|
|
262
|
+
e.useLayoutEffect(() => {
|
|
263
|
+
let e = f == null ? void 0 : f.current;
|
|
264
|
+
if (!(!e || typeof n != "function")) return e.addEventListener(a, n, i), () => {
|
|
265
|
+
e.removeEventListener(a, n, i);
|
|
266
|
+
};
|
|
267
|
+
}, [f == null ? void 0 : f.current, n]);
|
|
268
|
+
}
|
|
269
|
+
e.useLayoutEffect(() => {
|
|
270
|
+
if (f.current === null) return;
|
|
271
|
+
let e = /* @__PURE__ */ new Map();
|
|
272
|
+
for (let t in _) V(f.current, t, _[t]), p.current.delete(t), e.set(t, _[t]);
|
|
273
|
+
for (let [e, t] of p.current) V(f.current, e, void 0);
|
|
274
|
+
p.current = e;
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
if (typeof window > "u" && n != null && n.getTemplateHTML && n != null && n.shadowRootOptions) {
|
|
278
|
+
let { mode: t, delegatesFocus: r } = n.shadowRootOptions;
|
|
279
|
+
g.children = [e.createElement("template", {
|
|
280
|
+
shadowrootmode: t,
|
|
281
|
+
shadowrootdelegatesfocus: r,
|
|
282
|
+
dangerouslySetInnerHTML: { __html: n.getTemplateHTML(h, i) },
|
|
283
|
+
key: "ce-la-react-ssr-template-shadow-root"
|
|
284
|
+
}), g.children];
|
|
285
|
+
}
|
|
286
|
+
return e.createElement(t, {
|
|
287
|
+
...a,
|
|
288
|
+
...g,
|
|
289
|
+
ref: e.useCallback((e) => {
|
|
290
|
+
f.current = e, typeof l == "function" ? l(e) : l !== null && (l.current = e);
|
|
291
|
+
}, [l])
|
|
292
|
+
}, g.children);
|
|
293
|
+
});
|
|
294
|
+
return l.displayName = i == null ? n.name : i, l;
|
|
295
|
+
}
|
|
296
|
+
function V(e, t, n) {
|
|
297
|
+
var r, i;
|
|
298
|
+
e[t] = n, n == null && t in ((r = (i = globalThis.HTMLElement) == null ? void 0 : i.prototype) == null ? {} : r) && e.removeAttribute(t);
|
|
299
|
+
}
|
|
300
|
+
var H = B({
|
|
301
|
+
react: o,
|
|
302
|
+
tagName: "spotify-audio",
|
|
303
|
+
elementClass: F,
|
|
304
|
+
toAttributeName(e) {
|
|
305
|
+
return e === "muted" ? "" : e === "defaultMuted" ? "muted" : R(e);
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
//#endregion
|
|
309
|
+
export { H as default };
|
|
310
|
+
|
|
311
|
+
//# sourceMappingURL=react-GXf8sbzf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-GXf8sbzf.js","names":["CustomMediaElement"],"sources":["../../../node_modules/.pnpm/spotify-audio-element@1.0.4/node_modules/spotify-audio-element/dist/spotify-audio-element.js","../../../node_modules/.pnpm/spotify-audio-element@1.0.4/node_modules/spotify-audio-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://open.spotify.com\";\nconst MATCH_SRC = /open\\.spotify\\.com\\/(\\w+)\\/(\\w+)/i;\nconst API_URL = \"https://open.spotify.com/embed-podcast/iframe-api/v1\";\nconst API_GLOBAL = \"SpotifyIframeApi\";\nconst API_GLOBAL_READY = \"onSpotifyIframeApiReady\";\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n scrolling: \"no\",\n frameborder: 0,\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n };\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n min-width: 160px;\n min-height: 80px;\n position: relative;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n :host(:not([controls])) {\n display: none !important;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n var _a, _b, _c;\n if (!attrs.src) return;\n const matches = attrs.src.match(MATCH_SRC);\n const type = matches && matches[1];\n const metaId = matches && matches[2];\n const params = {\n t: (_a = props.config) == null ? void 0 : _a.startAt,\n theme: ((_b = props.config) == null ? void 0 : _b.theme) === \"dark\" ? \"0\" : null\n };\n const videoPath = ((_c = props.config) == null ? void 0 : _c.preferVideo) ? \"/video\" : \"\";\n return `${EMBED_BASE}/embed/${type}/${metaId}${videoPath}?${serialize(params)}`;\n}\nclass SpotifyAudioElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\n \"controls\",\n \"loop\",\n \"src\"\n ];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #isInit;\n #isWaiting = false;\n #closeToEnded = false;\n #paused = true;\n #currentTime = 0;\n #duration = NaN;\n #seeking = false;\n #config = null;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n async load() {\n var _a, _b, _c;\n if (this.#loadRequested) return;\n if (this.#hasLoaded) this.loadComplete = new PublicPromise();\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#isWaiting = false;\n this.#closeToEnded = false;\n this.#currentTime = 0;\n this.#duration = NaN;\n this.#seeking = false;\n this.dispatchEvent(new Event(\"emptied\"));\n let oldApi = this.api;\n this.api = null;\n if (!this.src) {\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n const options = {\n t: (_a = this.config) == null ? void 0 : _a.startAt,\n theme: ((_b = this.config) == null ? void 0 : _b.theme) === \"dark\" ? \"0\" : null,\n preferVideo: (_c = this.config) == null ? void 0 : _c.preferVideo\n };\n if (this.#isInit) {\n this.api = oldApi;\n this.api.iframeElement.src = serializeIframeUrl(namedNodeMapToObject(this.attributes), this);\n } else {\n this.#isInit = true;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n this.shadowRoot.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes), this);\n }\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const Spotify = await loadScript(API_URL, API_GLOBAL, API_GLOBAL_READY);\n this.api = await new Promise((resolve) => Spotify.createController(iframe, options, resolve));\n this.api.iframeElement = iframe;\n this.api.addListener(\"ready\", () => {\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n this.dispatchEvent(new Event(\"durationchange\"));\n this.dispatchEvent(new Event(\"volumechange\"));\n });\n this.api.addListener(\"playback_update\", (event) => {\n if (this.#closeToEnded && this.#paused && (event.data.isBuffering || !event.data.isPaused)) {\n this.#closeToEnded = false;\n this.currentTime = 1;\n return;\n }\n if (event.data.duration / 1e3 !== this.#duration) {\n this.#closeToEnded = false;\n this.#duration = event.data.duration / 1e3;\n this.dispatchEvent(new Event(\"durationchange\"));\n }\n if (event.data.position / 1e3 !== this.#currentTime) {\n this.#seeking = false;\n this.#closeToEnded = false;\n this.#currentTime = event.data.position / 1e3;\n this.dispatchEvent(new Event(\"timeupdate\"));\n }\n if (!this.#isWaiting && !this.#paused && event.data.isPaused) {\n this.#paused = true;\n this.dispatchEvent(new Event(\"pause\"));\n return;\n }\n if (this.#paused && (event.data.isBuffering || !event.data.isPaused)) {\n this.#paused = false;\n this.dispatchEvent(new Event(\"play\"));\n this.#isWaiting = event.data.isBuffering;\n if (this.#isWaiting) {\n this.dispatchEvent(new Event(\"waiting\"));\n } else {\n this.dispatchEvent(new Event(\"playing\"));\n }\n return;\n }\n if (this.#isWaiting && !event.data.isPaused) {\n this.#isWaiting = false;\n this.dispatchEvent(new Event(\"playing\"));\n return;\n }\n if (!this.paused && !this.seeking && !this.#closeToEnded && Math.ceil(this.currentTime) >= this.duration) {\n this.#closeToEnded = true;\n if (this.loop) {\n this.currentTime = 1;\n return;\n }\n if (!this.continuous) {\n this.pause();\n this.dispatchEvent(new Event(\"ended\"));\n }\n return;\n }\n });\n }\n this.loadComplete.resolve();\n await this.loadComplete;\n }\n async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\": {\n this.load();\n return;\n }\n }\n }\n async play() {\n var _a;\n this.#paused = false;\n this.#isWaiting = true;\n this.dispatchEvent(new Event(\"play\"));\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.resume();\n }\n async pause() {\n var _a;\n await this.loadComplete;\n return (_a = this.api) == null ? void 0 : _a.pause();\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n get paused() {\n return this.#paused ?? true;\n }\n get muted() {\n return false;\n }\n set muted(val) {\n }\n get volume() {\n return 1;\n }\n set volume(val) {\n }\n get ended() {\n return Math.ceil(this.currentTime) >= this.duration;\n }\n get seeking() {\n return this.#seeking;\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 get currentTime() {\n return this.#currentTime;\n }\n set currentTime(val) {\n if (this.currentTime == val) return;\n this.#seeking = true;\n let oldTime = this.#currentTime;\n this.#currentTime = val;\n this.dispatchEvent(new Event(\"timeupdate\"));\n this.#currentTime = oldTime;\n this.loadComplete.then(() => {\n var _a;\n (_a = this.api) == null ? void 0 : _a.seek(val);\n });\n }\n get duration() {\n return this.#duration;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(val) {\n this.setAttribute(\"src\", `${val}`);\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 += ` ${key}`;\n else html += ` ${key}=\"${value}\"`;\n }\n return html;\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 return Promise.resolve(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 = (api) => resolve(api);\n if (readyFnName) self[readyFnName] = ready;\n script.onload = () => !readyFnName && ready();\n script.onerror = reject;\n document.head.append(script);\n });\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}\nif (globalThis.customElements && !globalThis.customElements.get(\"spotify-audio\")) {\n globalThis.customElements.define(\"spotify-audio\", SpotifyAudioElement);\n}\nvar spotify_audio_element_default = SpotifyAudioElement;\nexport {\n spotify_audio_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./spotify-audio-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: \"spotify-audio\",\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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"}
|