@linktr.ee/messaging-react 1.27.0 → 1.28.0-rc-1776231821

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 (57) hide show
  1. package/dist/Creator-BFpHsh2u.js +318 -0
  2. package/dist/Creator-BFpHsh2u.js.map +1 -0
  3. package/dist/MediaPlayer-DXz4IBLx.js +313 -0
  4. package/dist/MediaPlayer-DXz4IBLx.js.map +1 -0
  5. package/dist/Visitor-C1Fcrgd6.js +199 -0
  6. package/dist/Visitor-C1Fcrgd6.js.map +1 -0
  7. package/dist/assets/index.css +1 -1
  8. package/dist/index.d.ts +13 -16
  9. package/dist/index.js +27 -35
  10. package/dist/index.js.map +1 -1
  11. package/package.json +1 -2
  12. package/src/components/CustomMessage/CustomMessage.stories.tsx +1 -1
  13. package/src/components/CustomMessage/index.tsx +0 -1
  14. package/src/components/LockedAttachment/LockedAttachment.stories.tsx +143 -49
  15. package/src/components/LockedAttachment/components/Creator.tsx +406 -114
  16. package/src/components/LockedAttachment/components/MediaPlayer.tsx +162 -80
  17. package/src/components/LockedAttachment/components/Visitor.tsx +205 -145
  18. package/src/components/LockedAttachment/index.tsx +7 -7
  19. package/src/components/LockedAttachment/types.ts +1 -5
  20. package/src/components/LockedAttachment/utils/icons.ts +2 -1
  21. package/src/components/LockedAttachment/utils/mimeType.test.ts +29 -7
  22. package/src/components/LockedAttachment/utils/mimeType.ts +3 -1
  23. package/src/types.ts +0 -1
  24. package/dist/Creator-B6M8dB0U.js +0 -87
  25. package/dist/Creator-B6M8dB0U.js.map +0 -1
  26. package/dist/MediaPlayer-DsjlYGGH.js +0 -539
  27. package/dist/MediaPlayer-DsjlYGGH.js.map +0 -1
  28. package/dist/Preview-DqAv16NS.js +0 -87
  29. package/dist/Preview-DqAv16NS.js.map +0 -1
  30. package/dist/Visitor-CpmFZRGO.js +0 -175
  31. package/dist/Visitor-CpmFZRGO.js.map +0 -1
  32. package/dist/dash.all.min-Duv4lvGS.js +0 -18858
  33. package/dist/dash.all.min-Duv4lvGS.js.map +0 -1
  34. package/dist/hls-Bogc7CBn.js +0 -21710
  35. package/dist/hls-Bogc7CBn.js.map +0 -1
  36. package/dist/index-Da-xN4Yq.js +0 -16142
  37. package/dist/index-Da-xN4Yq.js.map +0 -1
  38. package/dist/index-Dj9rqWcU.js +0 -69
  39. package/dist/index-Dj9rqWcU.js.map +0 -1
  40. package/dist/mixin-B6jYfIcp.js +0 -808
  41. package/dist/mixin-B6jYfIcp.js.map +0 -1
  42. package/dist/react-BxlQMOfz.js +0 -419
  43. package/dist/react-BxlQMOfz.js.map +0 -1
  44. package/dist/react-COAP-MIW.js +0 -377
  45. package/dist/react-COAP-MIW.js.map +0 -1
  46. package/dist/react-Cn4WlMcl.js +0 -3108
  47. package/dist/react-Cn4WlMcl.js.map +0 -1
  48. package/dist/react-CwTJArKY.js +0 -459
  49. package/dist/react-CwTJArKY.js.map +0 -1
  50. package/dist/react-DkfS_atT.js +0 -373
  51. package/dist/react-DkfS_atT.js.map +0 -1
  52. package/dist/react-Pea5fum1.js +0 -286
  53. package/dist/react-Pea5fum1.js.map +0 -1
  54. package/dist/react-RiBbsUDd.js +0 -534
  55. package/dist/react-RiBbsUDd.js.map +0 -1
  56. package/dist/react-dS1WBxxz.js +0 -238
  57. package/dist/react-dS1WBxxz.js.map +0 -1
@@ -1,373 +0,0 @@
1
- var it = Object.defineProperty;
2
- var G = (e) => {
3
- throw TypeError(e);
4
- };
5
- var rt = (e, o, t) => o in e ? it(e, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[o] = t;
6
- var I = (e, o, t) => rt(e, typeof o != "symbol" ? o + "" : o, t), x = (e, o, t) => o.has(e) || G("Cannot " + t);
7
- var l = (e, o, t) => (x(e, o, "read from private field"), t ? t.call(e) : o.get(e)), d = (e, o, t) => o.has(e) ? G("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(e) : o.set(e, t), a = (e, o, t, s) => (x(e, o, "write to private field"), s ? s.call(e, t) : o.set(e, t), t), h = (e, o, t) => (x(e, o, "access private method"), t);
8
- import nt from "react";
9
- const at = "https://www.tiktok.com/player/v1", lt = /tiktok\.com\/(?:player\/v1\/|share\/video\/|@[^/]+\/video\/)([0-9]+)/, g = { INIT: -1, ENDED: 0, PLAYING: 1, PAUSED: 2, BUFFERING: 3 }, ut = {
10
- [g.INIT]: "emptied",
11
- [g.PAUSED]: "pause",
12
- [g.ENDED]: "ended",
13
- [g.PLAYING]: "play",
14
- [g.BUFFERING]: "waiting"
15
- };
16
- function z(e, o = {}) {
17
- const t = {
18
- src: Q(e, o),
19
- frameborder: 0,
20
- width: "100%",
21
- height: "100%",
22
- allow: "accelerometer; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture"
23
- };
24
- return o.config && (t["data-config"] = JSON.stringify(o.config)), /*html*/
25
- `
26
- <style>
27
- :host {
28
- display:inline-block;
29
- min-width: 300px;
30
- min-height: 150px;
31
- position: relative;
32
- }
33
- iframe {
34
- position:absolute;
35
- top:0;
36
- left:0;
37
- width:100%;
38
- height:100%;
39
- border:0;
40
- }
41
- </style>
42
- <iframe ${ft(t)} title="TikTok video"></iframe>
43
- `;
44
- }
45
- function Q(e, o = {}) {
46
- if (!e.src) return;
47
- const t = e.src.match(lt), s = t && t[1], i = {
48
- controls: e.controls === "" ? null : 0,
49
- autoplay: e.autoplay,
50
- muted: e.muted,
51
- loop: e.loop,
52
- rel: 0,
53
- ...o.config
54
- };
55
- return `${at}/${s}?${ht(i)}`;
56
- }
57
- var k, M, w, L, N, A, b, R, E, _, u, T, X, Z, V, tt;
58
- const S = class S extends (globalThis.HTMLElement ?? class {
59
- }) {
60
- constructor() {
61
- super();
62
- d(this, u);
63
- I(this, "loadComplete", new J());
64
- d(this, k);
65
- d(this, M);
66
- d(this, w, !1);
67
- d(this, L, 0);
68
- d(this, N, !0);
69
- d(this, A, null);
70
- d(this, b, 100);
71
- d(this, R, 0);
72
- d(this, E);
73
- d(this, _, (t) => {
74
- var s;
75
- if (t.source !== ((s = l(this, E)) == null ? void 0 : s.contentWindow)) return;
76
- const i = t.data;
77
- if (i != null && i["x-tiktok-player"])
78
- switch (i.type) {
79
- case "onPlayerReady":
80
- this.loadComplete.resolve();
81
- break;
82
- case "onStateChange": {
83
- a(this, N, [g.INIT, g.PAUSED, g.ENDED].includes(i.value));
84
- const f = ut[i.value];
85
- f && this.dispatchEvent(new Event(f));
86
- break;
87
- }
88
- case "onCurrentTime":
89
- a(this, L, i.value.currentTime), a(this, R, i.value.duration), this.dispatchEvent(new Event("durationchange")), this.dispatchEvent(new Event("timeupdate"));
90
- break;
91
- case "onVolumeChange":
92
- a(this, b, i.value), this.dispatchEvent(new Event("volumechange"));
93
- break;
94
- case "onMute":
95
- a(this, w, !!i.value), a(this, b, i.value ? 0 : l(this, b)), this.dispatchEvent(new Event("volumechange"));
96
- break;
97
- case "onError":
98
- this.dispatchEvent(new Event("error"));
99
- break;
100
- default:
101
- console.warn("Unhandled TikTok player message:", i);
102
- break;
103
- }
104
- });
105
- h(this, u, tt).call(this, "config");
106
- }
107
- static get observedAttributes() {
108
- return ["src", "controls", "loop", "autoplay", "muted"];
109
- }
110
- async load() {
111
- if (l(this, k)) return;
112
- this.shadowRoot || this.attachShadow(S.shadowRootOptions);
113
- const t = !l(this, M);
114
- if (l(this, M) && (this.loadComplete = new J()), a(this, M, !0), await a(this, k, Promise.resolve()), a(this, k, null), a(this, L, 0), a(this, w, !1), a(this, N, !0), !this.src) {
115
- this.shadowRoot.innerHTML = "", globalThis.removeEventListener("message", l(this, _));
116
- return;
117
- }
118
- let s = this.shadowRoot.querySelector("iframe");
119
- const i = ct(this.attributes);
120
- t && s && a(this, A, JSON.parse(s.getAttribute("data-config") || "{}")), (!(s != null && s.src) || s.src !== Q(i, this)) && (this.shadowRoot.innerHTML = z(i, this), s = this.shadowRoot.querySelector("iframe")), a(this, E, s), globalThis.addEventListener("message", l(this, _));
121
- }
122
- async attributeChangedCallback(t, s, i) {
123
- if (s !== i)
124
- switch (t) {
125
- case "muted": {
126
- await this.loadComplete, this.muted = i != null;
127
- break;
128
- }
129
- case "autoplay":
130
- case "controls":
131
- case "loop":
132
- case "src": {
133
- this.load();
134
- return;
135
- }
136
- }
137
- }
138
- get config() {
139
- return l(this, A);
140
- }
141
- set config(t) {
142
- a(this, A, t);
143
- }
144
- async play() {
145
- await this.loadComplete, h(this, u, T).call(this, "play");
146
- }
147
- async pause() {
148
- await this.loadComplete, h(this, u, T).call(this, "pause");
149
- }
150
- get volume() {
151
- return l(this, b) / 100;
152
- }
153
- set volume(t) {
154
- console.warn("Volume control is not supported for TikTok videos.");
155
- }
156
- get currentTime() {
157
- return l(this, L);
158
- }
159
- set currentTime(t) {
160
- h(this, u, X).call(this, t);
161
- }
162
- get muted() {
163
- return l(this, w);
164
- }
165
- set muted(t) {
166
- a(this, w, t), t ? h(this, u, Z).call(this) : h(this, u, V).call(this);
167
- }
168
- get defaultMuted() {
169
- return this.hasAttribute("muted");
170
- }
171
- set defaultMuted(t) {
172
- this.toggleAttribute("muted", !!t);
173
- }
174
- get paused() {
175
- return l(this, N);
176
- }
177
- get duration() {
178
- return l(this, R);
179
- }
180
- get src() {
181
- return this.getAttribute("src");
182
- }
183
- set src(t) {
184
- this.setAttribute("src", t ?? "");
185
- }
186
- };
187
- k = new WeakMap(), M = new WeakMap(), w = new WeakMap(), L = new WeakMap(), N = new WeakMap(), A = new WeakMap(), b = new WeakMap(), R = new WeakMap(), E = new WeakMap(), _ = new WeakMap(), u = new WeakSet(), T = function(t, s) {
188
- var i;
189
- if (!((i = l(this, E)) != null && i.contentWindow)) return;
190
- const f = { "x-tiktok-player": !0, type: t, ...s !== void 0 ? { value: s } : {} };
191
- l(this, E).contentWindow.postMessage(f, "*");
192
- }, X = async function(t) {
193
- await this.loadComplete, h(this, u, T).call(this, "seekTo", Number(t));
194
- }, Z = async function() {
195
- await this.loadComplete, h(this, u, T).call(this, "mute");
196
- }, V = async function() {
197
- await this.loadComplete, h(this, u, T).call(this, "unMute");
198
- }, // This is a pattern to update property values that are set before
199
- // the custom element is upgraded.
200
- // https://web.dev/custom-elements-best-practices/#make-properties-lazy
201
- tt = function(t) {
202
- if (Object.prototype.hasOwnProperty.call(this, t)) {
203
- const s = this[t];
204
- delete this[t], this[t] = s;
205
- }
206
- }, I(S, "getTemplateHTML", z), I(S, "shadowRootOptions", { mode: "open" });
207
- let H = S;
208
- class J extends Promise {
209
- constructor(o = () => {
210
- }) {
211
- let t, s;
212
- super((i, f) => {
213
- o(i, f), t = i, s = f;
214
- }), this.resolve = t, this.reject = s;
215
- }
216
- }
217
- function ct(e) {
218
- let o = {};
219
- for (let t of e)
220
- o[t.name] = t.value;
221
- return o;
222
- }
223
- function dt(e) {
224
- let o = {};
225
- for (let t in e) {
226
- let s = e[t];
227
- s === !0 || s === "" ? o[t] = 1 : s === !1 ? o[t] = 0 : s != null && (o[t] = s);
228
- }
229
- return o;
230
- }
231
- function ht(e) {
232
- return String(new URLSearchParams(dt(e)));
233
- }
234
- function ft(e) {
235
- let o = "";
236
- for (const t in e) {
237
- const s = e[t];
238
- s === "" ? o += ` ${F(t)}` : o += ` ${F(t)}="${F(`${s}`)}"`;
239
- }
240
- return o;
241
- }
242
- function F(e) {
243
- return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;").replace(/`/g, "&#x60;");
244
- }
245
- globalThis.customElements && !globalThis.customElements.get("tiktok-video") && globalThis.customElements.define("tiktok-video", H);
246
- var mt = H, pt = /* @__PURE__ */ new Set([
247
- "style",
248
- "children",
249
- "ref",
250
- "key",
251
- "suppressContentEditableWarning",
252
- "suppressHydrationWarning",
253
- "dangerouslySetInnerHTML"
254
- ]), vt = {
255
- className: "class",
256
- htmlFor: "for"
257
- };
258
- function et(e) {
259
- return e.toLowerCase();
260
- }
261
- function Y(e) {
262
- if (typeof e == "boolean") return e ? "" : void 0;
263
- if (typeof e != "function" && !(typeof e == "object" && e !== null))
264
- return e;
265
- }
266
- function gt({
267
- react: e,
268
- tagName: o,
269
- elementClass: t,
270
- events: s,
271
- displayName: i,
272
- defaultProps: f,
273
- toAttributeName: ot = et,
274
- toAttributeValue: st = Y
275
- }) {
276
- const U = Number.parseInt(e.version) >= 19, W = e.forwardRef(($, P) => {
277
- var j, B;
278
- const m = e.useRef(null), D = e.useRef(/* @__PURE__ */ new Map()), O = {}, q = {}, p = {}, C = {};
279
- for (const [r, n] of Object.entries($)) {
280
- if (pt.has(r)) {
281
- p[r] = n;
282
- continue;
283
- }
284
- const c = ot(vt[r] ?? r);
285
- if (t.prototype && r in t.prototype && !(r in (((j = globalThis.HTMLElement) == null ? void 0 : j.prototype) ?? {})) && !((B = t.observedAttributes) != null && B.some((y) => y === c))) {
286
- C[r] = n;
287
- continue;
288
- }
289
- if (r.startsWith("on")) {
290
- O[r] = n;
291
- continue;
292
- }
293
- const v = st(n);
294
- if (c && v != null && (q[c] = String(v), U || (p[c] = v)), c && U) {
295
- const y = Y(n);
296
- v !== y ? p[c] = v : p[c] = n;
297
- }
298
- }
299
- if (typeof window < "u") {
300
- for (const r in O) {
301
- const n = O[r], c = r.endsWith("Capture"), v = ((s == null ? void 0 : s[r]) ?? r.slice(2).toLowerCase()).slice(
302
- 0,
303
- c ? -7 : void 0
304
- );
305
- e.useLayoutEffect(() => {
306
- const y = m == null ? void 0 : m.current;
307
- if (!(!y || typeof n != "function"))
308
- return y.addEventListener(v, n, c), () => {
309
- y.removeEventListener(v, n, c);
310
- };
311
- }, [m == null ? void 0 : m.current, n]);
312
- }
313
- e.useLayoutEffect(() => {
314
- if (m.current === null) return;
315
- const r = /* @__PURE__ */ new Map();
316
- for (const n in C)
317
- K(m.current, n, C[n]), D.current.delete(n), r.set(n, C[n]);
318
- for (const [n, c] of D.current)
319
- K(m.current, n, void 0);
320
- D.current = r;
321
- });
322
- }
323
- if (typeof window > "u" && (t != null && t.getTemplateHTML) && (t != null && t.shadowRootOptions)) {
324
- const { mode: r, delegatesFocus: n } = t.shadowRootOptions, c = e.createElement("template", {
325
- shadowrootmode: r,
326
- shadowrootdelegatesfocus: n,
327
- dangerouslySetInnerHTML: {
328
- __html: t.getTemplateHTML(q, $)
329
- },
330
- key: "ce-la-react-ssr-template-shadow-root"
331
- });
332
- p.children = [c, p.children];
333
- }
334
- return e.createElement(o, {
335
- ...f,
336
- ...p,
337
- ref: e.useCallback(
338
- (r) => {
339
- m.current = r, typeof P == "function" ? P(r) : P !== null && (P.current = r);
340
- },
341
- [P]
342
- )
343
- }, p.children);
344
- });
345
- return W.displayName = i ?? t.name, W;
346
- }
347
- function K(e, o, t) {
348
- var s;
349
- e[o] = t, t == null && o in (((s = globalThis.HTMLElement) == null ? void 0 : s.prototype) ?? {}) && e.removeAttribute(o);
350
- }
351
- var bt = gt({
352
- react: nt,
353
- tagName: "tiktok-video",
354
- elementClass: mt,
355
- toAttributeName(e) {
356
- return e === "muted" ? "" : e === "defaultMuted" ? "muted" : et(e);
357
- }
358
- });
359
- /*! Bundled license information:
360
-
361
- ce-la-react/dist/ce-la-react.js:
362
- (**
363
- * @license
364
- * Copyright 2018 Google LLC
365
- * SPDX-License-Identifier: BSD-3-Clause
366
- *
367
- * Modified version of `@lit/react` for vanilla custom elements with support for SSR.
368
- *)
369
- */
370
- export {
371
- bt as default
372
- };
373
- //# sourceMappingURL=react-DkfS_atT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-DkfS_atT.js","sources":["../../../node_modules/tiktok-video-element/dist/tiktok-video-element.js","../../../node_modules/tiktok-video-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://www.tiktok.com/player/v1\";\nconst MATCH_SRC = /tiktok\\.com\\/(?:player\\/v1\\/|share\\/video\\/|@[^/]+\\/video\\/)([0-9]+)/;\nconst PlayerState = { INIT: -1, ENDED: 0, PLAYING: 1, PAUSED: 2, BUFFERING: 3 };\nconst EventMap = {\n [PlayerState.INIT]: \"emptied\",\n [PlayerState.PAUSED]: \"pause\",\n [PlayerState.ENDED]: \"ended\",\n [PlayerState.PLAYING]: \"play\",\n [PlayerState.BUFFERING]: \"waiting\"\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; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture\"\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 border:0;\n }\n </style>\n <iframe ${serializeAttributes(iframeAttrs)} title=\"TikTok video\"></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props = {}) {\n if (!attrs.src) return;\n const matches = attrs.src.match(MATCH_SRC);\n const srcId = matches && matches[1];\n const params = {\n controls: attrs.controls === \"\" ? null : 0,\n autoplay: attrs.autoplay,\n muted: attrs.muted,\n loop: attrs.loop,\n rel: 0,\n ...props.config\n };\n return `${EMBED_BASE}/${srcId}?${serialize(params)}`;\n}\nclass TikTokVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static get observedAttributes() {\n return [\"src\", \"controls\", \"loop\", \"autoplay\", \"muted\"];\n }\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #muted = false;\n #currentTime = 0;\n #paused = true;\n #config = null;\n #volume = 100;\n #duration = 0;\n #iframe;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow(TikTokVideoElement.shadowRootOptions);\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.#currentTime = 0;\n this.#muted = false;\n this.#paused = true;\n if (!this.src) {\n this.shadowRoot.innerHTML = \"\";\n globalThis.removeEventListener(\"message\", this.#onMessage);\n return;\n }\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 async attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"muted\": {\n await this.loadComplete;\n this.muted = newValue != null;\n break;\n }\n case \"autoplay\":\n case \"controls\":\n case \"loop\":\n case \"src\": {\n this.load();\n return;\n }\n }\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n #onMessage = (event) => {\n var _a;\n if (event.source !== ((_a = this.#iframe) == null ? void 0 : _a.contentWindow)) return;\n const msg = event.data;\n if (!(msg == null ? void 0 : msg[\"x-tiktok-player\"])) return;\n switch (msg.type) {\n case \"onPlayerReady\":\n this.loadComplete.resolve();\n break;\n case \"onStateChange\": {\n this.#paused = [PlayerState.INIT, PlayerState.PAUSED, PlayerState.ENDED].includes(msg.value);\n const eventType = EventMap[msg.value];\n if (eventType) this.dispatchEvent(new Event(eventType));\n break;\n }\n case \"onCurrentTime\":\n this.#currentTime = msg.value.currentTime;\n this.#duration = msg.value.duration;\n this.dispatchEvent(new Event(\"durationchange\"));\n this.dispatchEvent(new Event(\"timeupdate\"));\n break;\n case \"onVolumeChange\":\n this.#volume = msg.value;\n this.dispatchEvent(new Event(\"volumechange\"));\n break;\n case \"onMute\":\n this.#muted = msg.value ? true : false;\n this.#volume = msg.value ? 0 : this.#volume;\n this.dispatchEvent(new Event(\"volumechange\"));\n break;\n case \"onError\":\n this.dispatchEvent(new Event(\"error\"));\n break;\n default:\n console.warn(\"Unhandled TikTok player message:\", msg);\n break;\n }\n };\n #post(type, value) {\n var _a;\n if (!((_a = this.#iframe) == null ? void 0 : _a.contentWindow)) return;\n const message = { \"x-tiktok-player\": true, type, ...value !== void 0 ? { value } : {} };\n this.#iframe.contentWindow.postMessage(message, \"*\");\n }\n async play() {\n await this.loadComplete;\n this.#post(\"play\");\n }\n async pause() {\n await this.loadComplete;\n this.#post(\"pause\");\n }\n async #seekTo(sec) {\n await this.loadComplete;\n this.#post(\"seekTo\", Number(sec));\n }\n async #mute() {\n await this.loadComplete;\n this.#post(\"mute\");\n }\n async #unMute() {\n await this.loadComplete;\n this.#post(\"unMute\");\n }\n get volume() {\n return this.#volume / 100;\n }\n set volume(_val) {\n console.warn(\"Volume control is not supported for TikTok videos.\");\n }\n get currentTime() {\n return this.#currentTime;\n }\n set currentTime(val) {\n this.#seekTo(val);\n }\n get muted() {\n return this.#muted;\n }\n set muted(val) {\n this.#muted = val;\n val ? this.#mute() : this.#unMute();\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n set defaultMuted(val) {\n this.toggleAttribute(\"muted\", !!val);\n }\n get paused() {\n return this.#paused;\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}\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 namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\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 serialize(props) {\n return String(new URLSearchParams(boolToBinary(props)));\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}\nif (globalThis.customElements && !globalThis.customElements.get(\"tiktok-video\")) {\n globalThis.customElements.define(\"tiktok-video\", TikTokVideoElement);\n}\nvar tiktok_video_element_default = TikTokVideoElement;\nexport {\n tiktok_video_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./tiktok-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: \"tiktok-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_SRC","PlayerState","EventMap","getTemplateHTML","attrs","props","iframeAttrs","serializeIframeUrl","serializeAttributes","matches","srcId","params","serialize","_TikTokVideoElement","__privateAdd","_TikTokVideoElement_instances","__publicField","PublicPromise","_loadRequested","_hasLoaded","_muted","_currentTime","_paused","_config","_volume","_duration","_iframe","_onMessage","event","_a","__privateGet","msg","__privateSet","eventType","__privateMethod","upgradeProperty_fn","isFirstLoad","iframe","namedNodeMapToObject","attrName","oldValue","newValue","value","post_fn","_val","val","seekTo_fn","mute_fn","unMute_fn","type","message","sec","prop","TikTokVideoElement","executor","res","rej","resolve","reject","namedNodeMap","obj","attr","boolToBinary","p","key","html","escapeHtml","str","tiktok_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","_b","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]}