@liforma/client 0.4.10 → 0.4.12

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 (117) hide show
  1. package/CHANGELOG.md +16 -1
  2. package/dist/next/index.js +754 -618
  3. package/dist/next/index.js.map +1 -1
  4. package/dist/next/react/ExperienceThumbnail.d.ts +2 -0
  5. package/dist/next/react/ExperienceThumbnail.d.ts.map +1 -1
  6. package/dist/next/react/ExperienceWidget.d.ts +3 -0
  7. package/dist/next/react/ExperienceWidget.d.ts.map +1 -1
  8. package/dist/next/thumbnail/expandAssetUrl.d.ts +17 -0
  9. package/dist/next/thumbnail/expandAssetUrl.d.ts.map +1 -0
  10. package/dist/next/thumbnail/expandAssetUrl.test.d.ts +2 -0
  11. package/dist/next/thumbnail/expandAssetUrl.test.d.ts.map +1 -0
  12. package/dist/next/thumbnail/index.d.ts +3 -0
  13. package/dist/next/thumbnail/index.d.ts.map +1 -1
  14. package/dist/next/thumbnail/locationPlate.d.ts +13 -0
  15. package/dist/next/thumbnail/locationPlate.d.ts.map +1 -0
  16. package/dist/next/thumbnail/locationPlate.test.d.ts +2 -0
  17. package/dist/next/thumbnail/locationPlate.test.d.ts.map +1 -0
  18. package/dist/next/thumbnail/styles.d.ts.map +1 -1
  19. package/dist/next/thumbnail/toGalleryThumbUrl.d.ts +12 -2
  20. package/dist/next/thumbnail/toGalleryThumbUrl.d.ts.map +1 -1
  21. package/dist/next/thumbnail/types.d.ts +7 -1
  22. package/dist/next/thumbnail/types.d.ts.map +1 -1
  23. package/dist/next/thumbnail.js +273 -192
  24. package/dist/next/thumbnail.js.map +1 -1
  25. package/dist/next/v2/embed/iframeHost.d.ts +3 -0
  26. package/dist/next/v2/embed/iframeHost.d.ts.map +1 -1
  27. package/dist/next/v2/embed/protocol.d.ts +21 -0
  28. package/dist/next/v2/embed/protocol.d.ts.map +1 -1
  29. package/dist/next/v2/experience.d.ts +20 -0
  30. package/dist/next/v2/experience.d.ts.map +1 -1
  31. package/dist/next/v2/shims/embedBaseUrl.d.ts +15 -1
  32. package/dist/next/v2/shims/embedBaseUrl.d.ts.map +1 -1
  33. package/dist/next/v2/types/stage.d.ts +8 -0
  34. package/dist/next/v2/types/stage.d.ts.map +1 -0
  35. package/dist/next/widget/mountExperienceWidget.d.ts.map +1 -1
  36. package/dist/npm/index.js +557 -449
  37. package/dist/npm/index.js.map +1 -1
  38. package/dist/npm/thumbnail/expandAssetUrl.d.ts +17 -0
  39. package/dist/npm/thumbnail/expandAssetUrl.d.ts.map +1 -0
  40. package/dist/npm/thumbnail/index.d.ts +3 -0
  41. package/dist/npm/thumbnail/index.d.ts.map +1 -1
  42. package/dist/npm/thumbnail/index.js +151 -75
  43. package/dist/npm/thumbnail/index.js.map +1 -1
  44. package/dist/npm/thumbnail/locationPlate.d.ts +13 -0
  45. package/dist/npm/thumbnail/locationPlate.d.ts.map +1 -0
  46. package/dist/npm/thumbnail/styles.d.ts.map +1 -1
  47. package/dist/npm/thumbnail/toGalleryThumbUrl.d.ts +12 -2
  48. package/dist/npm/thumbnail/toGalleryThumbUrl.d.ts.map +1 -1
  49. package/dist/npm/thumbnail/types.d.ts +7 -1
  50. package/dist/npm/thumbnail/types.d.ts.map +1 -1
  51. package/dist/npm/v2/embed/iframeHost.d.ts +3 -0
  52. package/dist/npm/v2/embed/iframeHost.d.ts.map +1 -1
  53. package/dist/npm/v2/embed/protocol.d.ts +21 -0
  54. package/dist/npm/v2/embed/protocol.d.ts.map +1 -1
  55. package/dist/npm/v2/experience.d.ts +20 -0
  56. package/dist/npm/v2/experience.d.ts.map +1 -1
  57. package/dist/npm/v2/index.d.ts +1 -0
  58. package/dist/npm/v2/index.d.ts.map +1 -1
  59. package/dist/npm/v2/liforma-experience-thumbnail.d.ts.map +1 -1
  60. package/dist/npm/v2/liforma-experience.d.ts.map +1 -1
  61. package/dist/npm/v2/npm.d.ts +1 -0
  62. package/dist/npm/v2/npm.d.ts.map +1 -1
  63. package/dist/npm/v2/shims/embedBaseUrl.d.ts +15 -1
  64. package/dist/npm/v2/shims/embedBaseUrl.d.ts.map +1 -1
  65. package/dist/npm/v2/types/stage.d.ts +8 -0
  66. package/dist/npm/v2/types/stage.d.ts.map +1 -0
  67. package/dist/npm/widget/mountExperienceWidget.d.ts.map +1 -1
  68. package/dist/react/component/experienceComponentRuntime.d.ts +3 -0
  69. package/dist/react/component/experienceComponentRuntime.d.ts.map +1 -1
  70. package/dist/react/component/experienceComponentTypes.d.ts +13 -1
  71. package/dist/react/component/experienceComponentTypes.d.ts.map +1 -1
  72. package/dist/react/index.js +870 -712
  73. package/dist/react/index.js.map +1 -1
  74. package/dist/react/react/Experience.d.ts.map +1 -1
  75. package/dist/react/react/ExperienceThumbnail.d.ts +2 -0
  76. package/dist/react/react/ExperienceThumbnail.d.ts.map +1 -1
  77. package/dist/react/react/ExperienceWidget.d.ts +3 -0
  78. package/dist/react/react/ExperienceWidget.d.ts.map +1 -1
  79. package/dist/react/thumbnail/expandAssetUrl.d.ts +17 -0
  80. package/dist/react/thumbnail/expandAssetUrl.d.ts.map +1 -0
  81. package/dist/react/thumbnail/expandAssetUrl.test.d.ts +2 -0
  82. package/dist/react/thumbnail/expandAssetUrl.test.d.ts.map +1 -0
  83. package/dist/react/thumbnail/index.d.ts +3 -0
  84. package/dist/react/thumbnail/index.d.ts.map +1 -1
  85. package/dist/react/thumbnail/locationPlate.d.ts +13 -0
  86. package/dist/react/thumbnail/locationPlate.d.ts.map +1 -0
  87. package/dist/react/thumbnail/locationPlate.test.d.ts +2 -0
  88. package/dist/react/thumbnail/locationPlate.test.d.ts.map +1 -0
  89. package/dist/react/thumbnail/styles.d.ts.map +1 -1
  90. package/dist/react/thumbnail/toGalleryThumbUrl.d.ts +12 -2
  91. package/dist/react/thumbnail/toGalleryThumbUrl.d.ts.map +1 -1
  92. package/dist/react/thumbnail/types.d.ts +7 -1
  93. package/dist/react/thumbnail/types.d.ts.map +1 -1
  94. package/dist/react/thumbnail.js +273 -192
  95. package/dist/react/thumbnail.js.map +1 -1
  96. package/dist/react/v2/embed/iframeHost.d.ts +3 -0
  97. package/dist/react/v2/embed/iframeHost.d.ts.map +1 -1
  98. package/dist/react/v2/embed/protocol.d.ts +21 -0
  99. package/dist/react/v2/embed/protocol.d.ts.map +1 -1
  100. package/dist/react/v2/experience.d.ts +20 -0
  101. package/dist/react/v2/experience.d.ts.map +1 -1
  102. package/dist/react/v2/shims/embedBaseUrl.d.ts +15 -1
  103. package/dist/react/v2/shims/embedBaseUrl.d.ts.map +1 -1
  104. package/dist/react/v2/types/stage.d.ts +8 -0
  105. package/dist/react/v2/types/stage.d.ts.map +1 -0
  106. package/dist/react/widget/mountExperienceWidget.d.ts.map +1 -1
  107. package/dist/sdk/v2/client.js +2 -2
  108. package/dist/sdk/v2/client.js.map +1 -1
  109. package/dist/sdk/v2/thumbnail.js +9 -2
  110. package/dist/sdk/v2/thumbnail.js.map +1 -1
  111. package/dist/svelte/Experience.svelte +41 -0
  112. package/dist/svelte/Experience.svelte.d.ts +3 -0
  113. package/dist/svelte/ExperienceThumbnail.svelte +24 -2
  114. package/dist/svelte/ExperienceThumbnail.svelte.d.ts +2 -0
  115. package/dist/svelte/ExperienceWidget.svelte +9 -0
  116. package/dist/svelte/ExperienceWidget.svelte.d.ts +3 -0
  117. package/package.json +1 -1
@@ -7,28 +7,98 @@ function s(e) {
7
7
  return e === "face" ? "liforma-et--fit-face" : e === "medium" ? "liforma-et--fit-medium" : "";
8
8
  }
9
9
  //#endregion
10
+ //#region src/thumbnail/locationPlate.ts
11
+ var c = /(-)(\d+x\d+)(\.webp)(\?|$)/i;
12
+ function l(e, t) {
13
+ return !Number.isFinite(e) || !Number.isFinite(t) || e < 1 || t < 1 || e <= t ? "256x256" : e > 800 || t > 450 ? "1672x941" : "800x450";
14
+ }
15
+ function u(e, t) {
16
+ let n = e.trim();
17
+ return n && n.replace(c, (e, n, r, i, a) => `${n}${t}${i}${a}`);
18
+ }
19
+ function ee(e, t) {
20
+ let n = () => {
21
+ t(e.clientWidth, e.clientHeight);
22
+ };
23
+ if (n(), typeof ResizeObserver > "u") return () => {};
24
+ let r = new ResizeObserver(n);
25
+ return r.observe(e), () => r.disconnect();
26
+ }
27
+ var d = /-(256x256|400x450|800x450|836x971|1672x941|167x94)$/i;
28
+ function f(e) {
29
+ return e?.trim().replace(/\/$/, "") || "https://cdn.liforma.ai";
30
+ }
31
+ function p(e) {
32
+ return /^https?:\/\//i.test(e) || e.startsWith("//");
33
+ }
34
+ function m(e) {
35
+ return e.startsWith("//") ? `https:${e}` : e;
36
+ }
37
+ function h(e) {
38
+ let t = e.indexOf("?");
39
+ return t === -1 ? {
40
+ pathname: e,
41
+ search: ""
42
+ } : {
43
+ pathname: e.slice(0, t),
44
+ search: e.slice(t)
45
+ };
46
+ }
47
+ function g(e, t, n = "") {
48
+ return `${e}${t.startsWith("/") ? t : `/${t}`}${n}`;
49
+ }
50
+ function _(e, t, n) {
51
+ let r = e.trim();
52
+ if (!r) return r;
53
+ let i = f(n);
54
+ if (p(r)) return u(m(r), t);
55
+ let { pathname: a, search: o } = h(r.replace(/\\/g, "/")), s = a;
56
+ if (!s.startsWith("/")) s = `/locations/${s.replace(/^locations\//i, "")}`;
57
+ else if (!/^\/locations\//i.test(s)) return /^\/avatars\//i.test(s) ? g(i, s, o) : r;
58
+ if (/\.webp$/i.test(s) && !d.test(s.replace(/\.webp$/i, ""))) return g(i, s, o);
59
+ let c = s.replace(/^\/locations\//i, "").replace(/\.webp$/i, "");
60
+ return c = c.replace(d, ""), `${i}/locations/${c}-${t}.webp${o}`;
61
+ }
62
+ function te(e, t) {
63
+ let n = e.trim();
64
+ if (!n) return n;
65
+ let r = f(t);
66
+ if (p(n)) return m(n);
67
+ let { pathname: i, search: a } = h(n.replace(/\\/g, "/")), o = i;
68
+ if (!o.startsWith("/")) if (/^avatars\//i.test(o)) o = `/${o}`;
69
+ else if (/^[^/]+$/.test(o) && !a) return `${r}/avatars/${o}/256/${o}_neutral.webp`;
70
+ else return n;
71
+ if (!/^\/avatars\//i.test(o)) return n;
72
+ let s = o.replace(/^\/avatars\//i, "").replace(/\/+$/, "");
73
+ return s && !s.includes("/") && !a ? `${r}/avatars/${s}/256/${s}_neutral.webp` : g(r, o, a);
74
+ }
75
+ //#endregion
10
76
  //#region src/thumbnail/toGalleryThumbUrl.ts
11
- var c = /(\/avatars\/[^/]+\/)(\d+)(\/)/i, l = /_CH(\.webp)/i, u = /(-)(\d+x\d+)(\.webp)(\?|$)/i;
12
- function d(e) {
13
- let t = e.trim();
14
- if (!t) return t;
15
- let n = t.replace(c, (e, t, n, r) => n === "256" ? `${t}${n}${r}` : `${t}256${r}`);
16
- return n = n.replace(l, "_neutral$1"), n = n.replace(u, (e, t, n, r, i) => n === "256x256" ? `${t}${n}${r}${i}` : `${t}256x256${r}${i}`), n;
17
- }
18
- function ee(e) {
77
+ var v = /(\/avatars\/[^/]+\/)(\d+)(\/)/i, y = /_CH(\.webp)/i;
78
+ function b(e) {
79
+ return /\/locations\//i.test(e) || /^locations\//i.test(e) ? !0 : /^https?:\/\//i.test(e) || e.startsWith("//") || /^\/?avatars\//i.test(e) || e.startsWith("/") ? !1 : e.includes("/");
80
+ }
81
+ function ne(e, t = "256x256", n) {
82
+ let r = e.trim();
83
+ if (!r) return r;
84
+ if (b(r)) return _(r, t, n);
85
+ let i = te(r, n);
86
+ return i = i.replace(v, (e, t, n, r) => n === "256" ? `${t}${n}${r}` : `${t}256${r}`), i.replace(y, "_neutral$1");
87
+ }
88
+ function re(e) {
19
89
  let t = e.avatarImage?.trim() || e.galleryThumb?.avatarImage?.trim() || "";
20
90
  if (!t) return null;
21
- let n = e.backgroundImage?.trim() || e.galleryThumb?.backgroundImage?.trim() || "", r = e.foregroundImage?.trim() || e.galleryThumb?.foregroundImage?.trim() || "", i = e.fallbackImage?.trim() || "";
91
+ let n = e.backgroundImage?.trim() || e.galleryThumb?.backgroundImage?.trim() || "", r = e.foregroundImage?.trim() || e.galleryThumb?.foregroundImage?.trim() || "", i = e.fallbackImage?.trim() || "", a = e.locationPlateSize ?? "256x256", o = f(e.cdnBaseUrl), s = e.normalize !== !1, c = (e) => !s && /^https?:\/\//i.test(e.trim()) ? e.trim() : ne(e, a, o), l = (e) => !s && /^https?:\/\//i.test(e.trim()) ? e.trim() : _(e, a, o);
22
92
  return {
23
- avatarImage: d(t),
24
- ...n ? { backgroundImage: d(n) } : {},
25
- ...r ? { foregroundImage: d(r) } : {},
26
- ...i ? { fallbackImage: d(i) } : {}
93
+ avatarImage: c(t),
94
+ ...n ? { backgroundImage: l(n) } : {},
95
+ ...r ? { foregroundImage: l(r) } : {},
96
+ ...i ? { fallbackImage: c(i) } : {}
27
97
  };
28
98
  }
29
99
  //#endregion
30
100
  //#region src/shims/localStack.ts
31
- function f() {
101
+ function ie() {
32
102
  if (globalThis.__LIFORMA_STACK === "local") return !0;
33
103
  if (typeof location > "u") return !1;
34
104
  try {
@@ -39,83 +109,83 @@ function f() {
39
109
  }
40
110
  //#endregion
41
111
  //#region src/thumbnail/hostedLaunchUrl.ts
42
- var p = "https://player.liforma.ai", m = "http://localhost:3002";
43
- function te(e) {
112
+ var x = "https://player.liforma.ai", ae = "http://localhost:3002";
113
+ function oe(e) {
44
114
  return e.href?.trim() ? "anchor" : e.hasClickHandler ? "button" : e.experienceId?.trim() ? "anchor" : "presentational";
45
115
  }
46
- function h(e) {
116
+ function S(e) {
47
117
  let t = e?.trim();
48
- return t ? t.replace(/\/$/, "") : f() ? m : p;
118
+ return t ? t.replace(/\/$/, "") : ie() ? ae : x;
49
119
  }
50
- function ne(e) {
51
- let t = e.experienceId.trim(), n = h(e.playerBaseUrl), r = new URL(`${n}/${encodeURIComponent(t)}`), i = e.returnUrl?.trim();
120
+ function C(e) {
121
+ let t = e.experienceId.trim(), n = S(e.playerBaseUrl), r = new URL(`${n}/${encodeURIComponent(t)}`), i = e.returnUrl?.trim();
52
122
  return i && r.searchParams.set("returnUrl", i), r.toString();
53
123
  }
54
- function re(e) {
124
+ function se(e) {
55
125
  let t = e.href?.trim();
56
126
  if (t) return t;
57
127
  let n = e.experienceId?.trim();
58
128
  if (!n) return;
59
129
  let r = e.returnUrl?.trim();
60
- return !r && e.useCurrentPageAsReturnUrl && typeof window < "u" && (r = window.location.href), ne({
130
+ return !r && e.useCurrentPageAsReturnUrl && typeof window < "u" && (r = window.location.href), C({
61
131
  experienceId: n,
62
132
  ...r ? { returnUrl: r } : {},
63
133
  playerBaseUrl: e.playerBaseUrl
64
134
  });
65
135
  }
66
- function g() {
136
+ function w() {
67
137
  return typeof window > "u" ? !1 : window.matchMedia("(hover: none), (pointer: coarse)").matches;
68
138
  }
69
- var _ = 0, v = [];
70
- function y() {
71
- return g() ? 4 : Infinity;
139
+ var T = 0, E = [];
140
+ function ce() {
141
+ return w() ? 4 : Infinity;
72
142
  }
73
- function ie() {
74
- return g() ? 160 : 0;
143
+ function le() {
144
+ return w() ? 160 : 0;
75
145
  }
76
- function b() {
77
- let e = y();
78
- for (; _ < e && v.length > 0;) {
79
- let e = v.shift();
146
+ function D() {
147
+ let e = ce();
148
+ for (; T < e && E.length > 0;) {
149
+ let e = E.shift();
80
150
  if (!e || e.cancelled) continue;
81
- _ += 1, e.start();
82
- let t = ie();
151
+ T += 1, e.start();
152
+ let t = le();
83
153
  if (t <= 0) {
84
- _ = Math.max(0, _ - 1);
154
+ T = Math.max(0, T - 1);
85
155
  continue;
86
156
  }
87
157
  window.setTimeout(() => {
88
- _ = Math.max(0, _ - 1), b();
158
+ T = Math.max(0, T - 1), D();
89
159
  }, t);
90
160
  }
91
161
  }
92
- function x(e) {
93
- if (!g()) return e(), () => {};
162
+ function ue(e) {
163
+ if (!w()) return e(), () => {};
94
164
  let t = {
95
165
  start: e,
96
166
  cancelled: !1
97
167
  };
98
- return v.push(t), b(), () => {
168
+ return E.push(t), D(), () => {
99
169
  t.cancelled = !0;
100
170
  };
101
171
  }
102
172
  //#endregion
103
173
  //#region src/thumbnail/lazyLoad.ts
104
- function S() {
105
- return g() ? "96px 0px" : "280px 0px";
174
+ function O() {
175
+ return w() ? "96px 0px" : "280px 0px";
106
176
  }
107
- function C(e) {
177
+ function k(e) {
108
178
  let t = e.trim().split(/\s+/)[0] ?? "0px", n = Number.parseFloat(t);
109
179
  return Number.isFinite(n) ? Math.abs(n) : 280;
110
180
  }
111
- function w(e, t) {
181
+ function A(e, t) {
112
182
  if (typeof window > "u") return !1;
113
183
  let n = e.getBoundingClientRect();
114
184
  return n.bottom >= -t && n.top <= window.innerHeight + t;
115
185
  }
116
- function ae(e, t) {
117
- let { onVisibleChange: n } = t, r = t.rootMargin ?? S(), i = C(r), a = !1, o = !1, s = null, c = () => {
118
- o || (s?.(), s = x(() => {
186
+ function de(e, t) {
187
+ let { onVisibleChange: n } = t, r = t.rootMargin ?? O(), i = k(r), a = !1, o = !1, s = null, c = () => {
188
+ o || (s?.(), s = ue(() => {
119
189
  s = null, o = !0, n(!0);
120
190
  }));
121
191
  }, l = (e) => {
@@ -137,260 +207,271 @@ function ae(e, t) {
137
207
  rootMargin: r,
138
208
  threshold: 0
139
209
  });
140
- return u.observe(e), w(e, i) && l(!0), () => {
210
+ return u.observe(e), A(e, i) && l(!0), () => {
141
211
  s?.(), s = null, u.disconnect();
142
212
  };
143
213
  }
144
214
  //#endregion
145
215
  //#region src/thumbnail/scrollParallax.ts
146
- function T() {
216
+ function j() {
147
217
  return typeof window > "u" || window.matchMedia("(prefers-reduced-motion: reduce)").matches ? !1 : window.matchMedia("(hover: none), (pointer: coarse)").matches;
148
218
  }
149
- function E(e, t) {
219
+ function M(e, t) {
150
220
  return ((e.top + e.height / 2) / Math.max(t, 1) - .5) * 2;
151
221
  }
152
- var D = /* @__PURE__ */ new Set(), O = !1, k = 0;
153
- function A() {
154
- if (k = 0, D.size === 0 || typeof window > "u") return;
222
+ var N = /* @__PURE__ */ new Set(), P = !1, F = 0;
223
+ function I() {
224
+ if (F = 0, N.size === 0 || typeof window > "u") return;
155
225
  let e = window.innerHeight;
156
- for (let t of D) {
226
+ for (let t of N) {
157
227
  if (t.pointerActive?.()) continue;
158
228
  let n = t.element.getBoundingClientRect();
159
- n.bottom < -64 || n.top > e + 64 || t.onParallax(E(n, e));
229
+ n.bottom < -64 || n.top > e + 64 || t.onParallax(M(n, e));
160
230
  }
161
231
  }
162
- function j() {
163
- k === 0 && (k = requestAnimationFrame(A));
232
+ function L() {
233
+ F === 0 && (F = requestAnimationFrame(I));
164
234
  }
165
- function M() {
166
- O || typeof window > "u" || (O = !0, window.addEventListener("scroll", j, { passive: !0 }), window.addEventListener("resize", j, { passive: !0 }));
235
+ function R() {
236
+ P || typeof window > "u" || (P = !0, window.addEventListener("scroll", L, { passive: !0 }), window.addEventListener("resize", L, { passive: !0 }));
167
237
  }
168
- function N() {
169
- D.size > 0 || !O || typeof window > "u" || (O = !1, k !== 0 && (cancelAnimationFrame(k), k = 0), window.removeEventListener("scroll", j), window.removeEventListener("resize", j));
238
+ function z() {
239
+ N.size > 0 || !P || typeof window > "u" || (P = !1, F !== 0 && (cancelAnimationFrame(F), F = 0), window.removeEventListener("scroll", L), window.removeEventListener("resize", L));
170
240
  }
171
- function oe(e, t) {
172
- if (!T()) return () => {};
241
+ function fe(e, t) {
242
+ if (!j()) return () => {};
173
243
  let n = {
174
244
  element: e,
175
245
  onParallax: t.onParallax,
176
246
  pointerActive: t.pointerActive
177
247
  };
178
- return D.add(n), M(), n.pointerActive?.() || t.onParallax(E(e.getBoundingClientRect(), window.innerHeight)), () => {
179
- D.delete(n), N();
248
+ return N.add(n), R(), n.pointerActive?.() || t.onParallax(M(e.getBoundingClientRect(), window.innerHeight)), () => {
249
+ N.delete(n), z();
180
250
  };
181
251
  }
182
252
  //#endregion
183
253
  //#region src/thumbnail/styles.ts
184
- var se = ".liforma-et {\n --liforma-et-parallax-x: 0;\n --liforma-et-parallax-y: 0;\n --liforma-et-bg-scale: 1;\n --liforma-et-fg-scale: 1;\n --liforma-et-avatar-scale: 1;\n --liforma-et-bg-shift: 0px;\n --liforma-et-fg-shift: 0px;\n --liforma-et-avatar-shift: 0px;\n --liforma-et-reveal-duration: 420ms;\n\n box-sizing: border-box;\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: 0.65rem;\n overflow: hidden;\n background: #111;\n color: inherit;\n text-decoration: none;\n cursor: inherit;\n -webkit-tap-highlight-color: transparent;\n}\n\na.liforma-et,\nbutton.liforma-et {\n cursor: pointer;\n}\n\nbutton.liforma-et {\n font: inherit;\n appearance: none;\n}\n\n.liforma-et__placeholder {\n position: absolute;\n inset: 0;\n z-index: 0;\n background:\n radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.06), transparent 58%),\n linear-gradient(180deg, #1a1a1a 0%, #101010 100%);\n opacity: 1;\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n.liforma-et--revealed .liforma-et__placeholder {\n opacity: 0;\n}\n\n.liforma-et__media {\n opacity: 0;\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n.liforma-et__media--ready {\n opacity: 1;\n}\n\n.liforma-et__background {\n position: absolute;\n inset: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center center;\n transform: translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-bg-shift)),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-bg-shift))\n )\n scale(var(--liforma-et-bg-scale));\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n.liforma-et__avatar {\n position: relative;\n z-index: 2;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center bottom;\n transform: scale(var(--liforma-et-avatar-scale))\n translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-avatar-shift)),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-avatar-shift))\n );\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n/* Gallery plates are typically square in a square tile — contain vs cover is a no-op\n without a zoom. Scale the whole scene from the upper third so Face matches\n player fit (location + avatar crop together). */\n.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.85;\n --liforma-et-bg-scale: 1.85;\n --liforma-et-fg-scale: 1.85;\n}\n\n.liforma-et--fit-face .liforma-et__avatar,\n.liforma-et--fit-face .liforma-et__background,\n.liforma-et--fit-face .liforma-et__foreground {\n transform-origin: 50% 18%;\n}\n\n.liforma-et--fit-face .liforma-et__avatar {\n object-fit: cover;\n object-position: 50% 18%;\n}\n\n/* Bust / medium: less zoom than face so upper chest stays in frame (player 3.75H window). */\n.liforma-et--fit-medium {\n --liforma-et-avatar-scale: 1.35;\n --liforma-et-bg-scale: 1.35;\n --liforma-et-fg-scale: 1.35;\n}\n\n.liforma-et--fit-medium .liforma-et__avatar,\n.liforma-et--fit-medium .liforma-et__background,\n.liforma-et--fit-medium .liforma-et__foreground {\n transform-origin: 50% 28%;\n}\n\n.liforma-et--fit-medium .liforma-et__avatar {\n object-fit: cover;\n object-position: 50% 28%;\n}\n\n.liforma-et__foreground {\n position: absolute;\n inset: 0;\n z-index: 3;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center center;\n pointer-events: none;\n transform: translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-fg-shift) * -1),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-fg-shift) * -1)\n )\n scale(var(--liforma-et-fg-scale));\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n.liforma-et--parallax {\n --liforma-et-bg-scale: 1.08;\n --liforma-et-fg-scale: 1.05;\n --liforma-et-avatar-scale: 1.08;\n --liforma-et-bg-shift: 10px;\n --liforma-et-fg-shift: 4px;\n --liforma-et-avatar-shift: 4px;\n}\n\n/* Promote layers only while parallax is active — avoids N compositor surfaces on galleries. */\n.liforma-et--parallax .liforma-et__background,\n.liforma-et--parallax .liforma-et__foreground,\n.liforma-et--parallax .liforma-et__avatar {\n will-change: transform;\n}\n\n.liforma-et--parallax.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.95;\n --liforma-et-bg-scale: 1.95;\n --liforma-et-fg-scale: 1.95;\n --liforma-et-avatar-shift: 0px;\n}\n\n.liforma-et--parallax.liforma-et--fit-medium {\n --liforma-et-avatar-scale: 1.42;\n --liforma-et-bg-scale: 1.42;\n --liforma-et-fg-scale: 1.42;\n --liforma-et-avatar-shift: 0px;\n}\n\n.liforma-et--scroll-parallax .liforma-et__background,\n.liforma-et--scroll-parallax .liforma-et__foreground,\n.liforma-et--scroll-parallax .liforma-et__avatar {\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .liforma-et {\n --liforma-et-reveal-duration: 0ms;\n }\n\n .liforma-et--parallax {\n --liforma-et-bg-scale: 1;\n --liforma-et-fg-scale: 1;\n --liforma-et-avatar-scale: 1;\n --liforma-et-bg-shift: 0px;\n --liforma-et-fg-shift: 0px;\n --liforma-et-avatar-shift: 0px;\n }\n\n .liforma-et--parallax.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.85;\n --liforma-et-bg-scale: 1.85;\n --liforma-et-fg-scale: 1.85;\n }\n\n .liforma-et__background,\n .liforma-et__foreground,\n .liforma-et__avatar {\n transition: none;\n }\n}", P = !1;
185
- function ce(e) {
186
- if (typeof document > "u" || P) return;
254
+ var pe = ":host {\n display: block;\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.liforma-et {\n --liforma-et-parallax-x: 0;\n --liforma-et-parallax-y: 0;\n --liforma-et-bg-scale: 1;\n --liforma-et-fg-scale: 1;\n --liforma-et-avatar-scale: 1;\n --liforma-et-bg-shift: 0px;\n --liforma-et-fg-shift: 0px;\n --liforma-et-avatar-shift: 0px;\n --liforma-et-reveal-duration: 420ms;\n\n box-sizing: border-box;\n position: relative;\n display: block;\n width: 100%;\n height: 100%;\n min-height: 0;\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: 0.65rem;\n overflow: hidden;\n background: #111;\n color: inherit;\n text-decoration: none;\n cursor: inherit;\n -webkit-tap-highlight-color: transparent;\n}\n\na.liforma-et,\nbutton.liforma-et {\n cursor: pointer;\n}\n\nbutton.liforma-et {\n font: inherit;\n appearance: none;\n}\n\n.liforma-et__placeholder {\n position: absolute;\n inset: 0;\n z-index: 0;\n background:\n radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.06), transparent 58%),\n linear-gradient(180deg, #1a1a1a 0%, #101010 100%);\n opacity: 1;\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n.liforma-et--revealed .liforma-et__placeholder {\n opacity: 0;\n}\n\n.liforma-et__media {\n opacity: 0;\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n.liforma-et__media--ready {\n opacity: 1;\n}\n\n.liforma-et__background {\n position: absolute;\n inset: 0;\n z-index: 1;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center center;\n transform: translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-bg-shift)),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-bg-shift))\n )\n scale(var(--liforma-et-bg-scale));\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n.liforma-et__avatar {\n position: relative;\n z-index: 2;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: contain;\n object-position: center bottom;\n transform: scale(var(--liforma-et-avatar-scale))\n translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-avatar-shift)),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-avatar-shift))\n );\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n/* Gallery plates are typically square in a square tile — contain vs cover is a no-op\n without a zoom. Scale the whole scene from the upper third so Face matches\n player fit (location + avatar crop together). */\n.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.85;\n --liforma-et-bg-scale: 1.85;\n --liforma-et-fg-scale: 1.85;\n}\n\n.liforma-et--fit-face .liforma-et__avatar,\n.liforma-et--fit-face .liforma-et__background,\n.liforma-et--fit-face .liforma-et__foreground {\n transform-origin: 50% 18%;\n}\n\n.liforma-et--fit-face .liforma-et__avatar {\n object-fit: cover;\n object-position: 50% 18%;\n}\n\n/* Bust / medium: less zoom than face so upper chest stays in frame (player 3.75H window). */\n.liforma-et--fit-medium {\n --liforma-et-avatar-scale: 1.35;\n --liforma-et-bg-scale: 1.35;\n --liforma-et-fg-scale: 1.35;\n}\n\n.liforma-et--fit-medium .liforma-et__avatar,\n.liforma-et--fit-medium .liforma-et__background,\n.liforma-et--fit-medium .liforma-et__foreground {\n transform-origin: 50% 28%;\n}\n\n.liforma-et--fit-medium .liforma-et__avatar {\n object-fit: cover;\n object-position: 50% 28%;\n}\n\n.liforma-et__foreground {\n position: absolute;\n inset: 0;\n z-index: 3;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center center;\n pointer-events: none;\n transform: translate(\n calc(var(--liforma-et-parallax-x) * var(--liforma-et-fg-shift) * -1),\n calc(var(--liforma-et-parallax-y) * var(--liforma-et-fg-shift) * -1)\n )\n scale(var(--liforma-et-fg-scale));\n transform-origin: center center;\n transition:\n opacity var(--liforma-et-reveal-duration) ease,\n transform 160ms ease;\n}\n\n.liforma-et--parallax {\n --liforma-et-bg-scale: 1.08;\n --liforma-et-fg-scale: 1.05;\n --liforma-et-avatar-scale: 1.08;\n --liforma-et-bg-shift: 10px;\n --liforma-et-fg-shift: 4px;\n --liforma-et-avatar-shift: 4px;\n}\n\n/* Promote layers only while parallax is active — avoids N compositor surfaces on galleries. */\n.liforma-et--parallax .liforma-et__background,\n.liforma-et--parallax .liforma-et__foreground,\n.liforma-et--parallax .liforma-et__avatar {\n will-change: transform;\n}\n\n.liforma-et--parallax.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.95;\n --liforma-et-bg-scale: 1.95;\n --liforma-et-fg-scale: 1.95;\n --liforma-et-avatar-shift: 0px;\n}\n\n.liforma-et--parallax.liforma-et--fit-medium {\n --liforma-et-avatar-scale: 1.42;\n --liforma-et-bg-scale: 1.42;\n --liforma-et-fg-scale: 1.42;\n --liforma-et-avatar-shift: 0px;\n}\n\n.liforma-et--scroll-parallax .liforma-et__background,\n.liforma-et--scroll-parallax .liforma-et__foreground,\n.liforma-et--scroll-parallax .liforma-et__avatar {\n transition: opacity var(--liforma-et-reveal-duration) ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .liforma-et {\n --liforma-et-reveal-duration: 0ms;\n }\n\n .liforma-et--parallax {\n --liforma-et-bg-scale: 1;\n --liforma-et-fg-scale: 1;\n --liforma-et-avatar-scale: 1;\n --liforma-et-bg-shift: 0px;\n --liforma-et-fg-shift: 0px;\n --liforma-et-avatar-shift: 0px;\n }\n\n .liforma-et--parallax.liforma-et--fit-face {\n --liforma-et-avatar-scale: 1.85;\n --liforma-et-bg-scale: 1.85;\n --liforma-et-fg-scale: 1.85;\n }\n\n .liforma-et__background,\n .liforma-et__foreground,\n .liforma-et__avatar {\n transition: none;\n }\n}", B = !1;
255
+ function me(e) {
256
+ if (typeof document > "u" || B) return;
187
257
  if (document.querySelector("style[data-liforma-et]")) {
188
- P = !0;
258
+ B = !0;
189
259
  return;
190
260
  }
191
261
  let t = document.createElement("style");
192
- t.setAttribute("data-liforma-et", ""), t.textContent = e, document.head.appendChild(t), P = !0;
262
+ t.setAttribute("data-liforma-et", ""), t.textContent = e, document.head.appendChild(t), B = !0;
193
263
  }
194
264
  //#endregion
195
265
  //#region src/react/ExperienceThumbnail.tsx
196
- function F(e, t) {
266
+ function V(e, t) {
197
267
  return `${e} liforma-et__media${t ? " liforma-et__media--ready" : ""}`;
198
268
  }
199
- function I(c) {
200
- let { galleryThumb: l, avatarImage: u, backgroundImage: d, foregroundImage: f, alt: p, experienceId: m, href: h, target: ne, rel: g, onClick: _, returnUrl: v, playerBaseUrl: y, parallax: ie = !0, fit: b = "full", lazy: x = !0, className: S = "", fallbackImage: C } = c, w = t(() => ee({
201
- galleryThumb: l,
202
- avatarImage: u,
203
- backgroundImage: d,
204
- foregroundImage: f,
205
- fallbackImage: C
269
+ function he(c) {
270
+ let { galleryThumb: u, avatarImage: d, backgroundImage: f, foregroundImage: p, alt: m, experienceId: h, href: g, target: _, rel: te, onClick: v, returnUrl: y, playerBaseUrl: b, parallax: ne = !0, fit: ie = "full", lazy: x = !0, className: ae = "", fallbackImage: S, normalizeUrls: C = !0, cdnBaseUrl: w } = c, T = n(null), E = n(!1), [ce, le] = r(0), [D, ue] = r(0), O = l(ce, D), k = t(() => re({
271
+ galleryThumb: u,
272
+ avatarImage: d,
273
+ backgroundImage: f,
274
+ foregroundImage: p,
275
+ fallbackImage: S,
276
+ normalize: C,
277
+ locationPlateSize: O,
278
+ cdnBaseUrl: w
206
279
  }), [
207
- l,
208
280
  u,
209
281
  d,
210
282
  f,
211
- C
212
- ]), T = te({
213
- href: h,
214
- hasClickHandler: typeof _ == "function",
215
- experienceId: m
216
- }), D = T === "anchor" && !h?.trim() && !!m?.trim(), O = !!w?.backgroundImage, k = ie !== !1, A = n(null), j = n(!1), [M, N] = r(!x), [P, I] = r(!1), [L, le] = r(!1), [ue, R] = r(0), [de, z] = r(0), [fe, B] = r(!1), [V, H] = r(!1), [pe, U] = r(!1), [me, W] = r(!1), [G, he] = r(), K = w ? fe && w.fallbackImage ? w.fallbackImage : w.avatarImage : "";
283
+ p,
284
+ S,
285
+ C,
286
+ O,
287
+ w
288
+ ]), A = oe({
289
+ href: g,
290
+ hasClickHandler: typeof v == "function",
291
+ experienceId: h
292
+ }), j = A === "anchor" && !g?.trim() && !!h?.trim(), N = !!k?.backgroundImage, P = ne !== !1, [F, I] = r(!x), [L, R] = r(!1), [z, B] = r(!1), [he, H] = r(0), [ge, U] = r(0), [_e, ve] = r(!1), [ye, W] = r(!1), [be, G] = r(!1), [xe, K] = r(!1), [q, Se] = r(), J = k ? _e && k.fallbackImage ? k.fallbackImage : k.avatarImage : "";
217
293
  e(() => {
218
- ce(se);
294
+ me(pe);
219
295
  }, []), e(() => {
220
- he(re({
221
- href: h,
222
- experienceId: m,
223
- returnUrl: v,
224
- playerBaseUrl: y,
225
- useCurrentPageAsReturnUrl: D && !v?.trim()
296
+ Se(se({
297
+ href: g,
298
+ experienceId: h,
299
+ returnUrl: y,
300
+ playerBaseUrl: b,
301
+ useCurrentPageAsReturnUrl: j && !y?.trim()
226
302
  }));
227
303
  }, [
304
+ g,
228
305
  h,
229
- m,
230
- v,
231
306
  y,
232
- D
307
+ b,
308
+ j
233
309
  ]), e(() => {
234
- H(!1), U(!1), W(!1), B(!1);
310
+ W(!1), G(!1), K(!1), ve(!1);
235
311
  }, [
236
- w?.backgroundImage,
237
- w?.foregroundImage,
238
- K
312
+ k?.backgroundImage,
313
+ k?.foregroundImage,
314
+ J
239
315
  ]), e(() => {
240
- let e = A.current;
316
+ let e = T.current;
317
+ if (e) return ee(e, (e, t) => {
318
+ le(e), ue(t);
319
+ });
320
+ }, [A, q]), e(() => {
321
+ let e = T.current;
241
322
  if (e) {
242
323
  if (!x) {
243
- N(!0);
324
+ I(!0);
244
325
  return;
245
326
  }
246
- return ae(e, { onVisibleChange: (e) => {
247
- e && N(!0);
327
+ return de(e, { onVisibleChange: (e) => {
328
+ e && I(!0);
248
329
  } });
249
330
  }
250
331
  }, [
251
332
  x,
252
- w,
253
- T,
254
- G
333
+ k,
334
+ A,
335
+ q
255
336
  ]), e(() => {
256
- let e = A.current;
257
- if (!(!e || !k)) return oe(e, {
337
+ let e = T.current;
338
+ if (!(!e || !P)) return fe(e, {
258
339
  onParallax: (e) => {
259
- le(!0), j.current || (R(e), z(0));
340
+ B(!0), E.current || (H(e), U(0));
260
341
  },
261
- pointerActive: () => j.current
342
+ pointerActive: () => E.current
262
343
  });
263
344
  }, [
345
+ P,
264
346
  k,
265
- w,
266
- T,
267
- G
347
+ A,
348
+ q
268
349
  ]);
269
- let ge = (e) => {
270
- if (!k || L) return;
350
+ let Ce = (e) => {
351
+ if (!P || z) return;
271
352
  let t = e.currentTarget.getBoundingClientRect();
272
- t.width <= 0 || t.height <= 0 || (R(((e.clientX - t.left) / t.width - .5) * 2), z(((e.clientY - t.top) / t.height - .5) * 2));
273
- }, q = (e) => {
274
- let t = j.current;
275
- j.current = !1, I(!1), L && t ? (R(E(e.getBoundingClientRect(), window.innerHeight)), z(0)) : L || (R(0), z(0));
276
- }, _e = (e) => {
277
- if (!k) return;
278
- j.current = !0, e.pointerType === "mouse" && I(!0);
353
+ t.width <= 0 || t.height <= 0 || (H(((e.clientX - t.left) / t.width - .5) * 2), U(((e.clientY - t.top) / t.height - .5) * 2));
354
+ }, Y = (e) => {
355
+ let t = E.current;
356
+ E.current = !1, R(!1), z && t ? (H(M(e.getBoundingClientRect(), window.innerHeight)), U(0)) : z || (H(0), U(0));
357
+ }, we = (e) => {
358
+ if (!P) return;
359
+ E.current = !0, e.pointerType === "mouse" && R(!0);
279
360
  let t = e.currentTarget, n = () => {
280
- q(t), window.removeEventListener("pointerup", n), window.removeEventListener("pointercancel", n);
361
+ Y(t), window.removeEventListener("pointerup", n), window.removeEventListener("pointercancel", n);
281
362
  };
282
363
  window.addEventListener("pointerup", n), window.addEventListener("pointercancel", n);
283
- }, ve = (e) => {
284
- if (_?.(e), !e.defaultPrevented && D && !v?.trim()) {
285
- let t = re({
286
- experienceId: m,
287
- playerBaseUrl: y,
364
+ }, Te = (e) => {
365
+ if (v?.(e), !e.defaultPrevented && j && !y?.trim()) {
366
+ let t = se({
367
+ experienceId: h,
368
+ playerBaseUrl: b,
288
369
  useCurrentPageAsReturnUrl: !0
289
370
  });
290
371
  t && e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && (e.preventDefault(), window.location.assign(t));
291
372
  }
292
373
  };
293
- if (!w) return null;
294
- let ye = k && (P || L), be = M && (pe || V || me), J = [
374
+ if (!k) return null;
375
+ let Ee = P && (L || z), De = F && (be || ye || xe), X = [
295
376
  "liforma-et",
296
- O ? "liforma-et--scene" : "",
297
- s(b),
298
- ye ? "liforma-et--parallax" : "",
299
- L ? "liforma-et--scroll-parallax" : "",
300
- M && !be ? "liforma-et--loading" : "",
301
- be ? "liforma-et--revealed" : "",
302
- S
303
- ].filter(Boolean).join(" "), Y = {
304
- "--liforma-et-parallax-x": ue,
305
- "--liforma-et-parallax-y": de
306
- }, X = (e, t) => {
377
+ N ? "liforma-et--scene" : "",
378
+ s(ie),
379
+ Ee ? "liforma-et--parallax" : "",
380
+ z ? "liforma-et--scroll-parallax" : "",
381
+ F && !De ? "liforma-et--loading" : "",
382
+ De ? "liforma-et--revealed" : "",
383
+ ae
384
+ ].filter(Boolean).join(" "), Z = {
385
+ "--liforma-et-parallax-x": he,
386
+ "--liforma-et-parallax-y": ge
387
+ }, Q = (e, t) => {
307
388
  e.complete && t(!0);
308
- }, Z = /* @__PURE__ */ o(i, { children: [
389
+ }, Oe = /* @__PURE__ */ o(i, { children: [
309
390
  /* @__PURE__ */ a("span", {
310
391
  className: "liforma-et__placeholder",
311
392
  "aria-hidden": "true"
312
393
  }),
313
- M && w.backgroundImage ? /* @__PURE__ */ a("img", {
314
- className: F("liforma-et__background", V),
315
- src: w.backgroundImage,
394
+ F && k.backgroundImage ? /* @__PURE__ */ a("img", {
395
+ className: V("liforma-et__background", ye),
396
+ src: k.backgroundImage,
316
397
  alt: "",
317
398
  decoding: "async",
318
399
  ref: (e) => {
319
- e && X(e, H);
400
+ e && Q(e, W);
320
401
  },
321
- onLoad: () => H(!0),
322
- onError: () => H(!0)
402
+ onLoad: () => W(!0),
403
+ onError: () => W(!0)
323
404
  }) : null,
324
- M && K ? /* @__PURE__ */ a("img", {
325
- className: F("liforma-et__avatar", pe),
326
- src: K,
405
+ F && J ? /* @__PURE__ */ a("img", {
406
+ className: V("liforma-et__avatar", be),
407
+ src: J,
327
408
  alt: "",
328
409
  decoding: "async",
329
410
  ref: (e) => {
330
- e && X(e, U);
411
+ e && Q(e, G);
331
412
  },
332
- onLoad: () => U(!0),
413
+ onLoad: () => G(!0),
333
414
  onError: () => {
334
- w.fallbackImage ? B(!0) : U(!0);
415
+ k.fallbackImage ? ve(!0) : G(!0);
335
416
  }
336
417
  }) : null,
337
- M && w.foregroundImage ? /* @__PURE__ */ a("img", {
338
- className: F("liforma-et__foreground", me),
339
- src: w.foregroundImage,
418
+ F && k.foregroundImage ? /* @__PURE__ */ a("img", {
419
+ className: V("liforma-et__foreground", xe),
420
+ src: k.foregroundImage,
340
421
  alt: "",
341
422
  decoding: "async",
342
423
  ref: (e) => {
343
- e && X(e, W);
424
+ e && Q(e, K);
344
425
  },
345
- onLoad: () => W(!0),
346
- onError: () => W(!0)
426
+ onLoad: () => K(!0),
427
+ onError: () => K(!0)
347
428
  }) : null
348
- ] }), Q = {
349
- onPointerDown: _e,
350
- onPointerUp: (e) => q(e.currentTarget),
351
- onPointerCancel: (e) => q(e.currentTarget),
429
+ ] }), ke = {
430
+ onPointerDown: we,
431
+ onPointerUp: (e) => Y(e.currentTarget),
432
+ onPointerCancel: (e) => Y(e.currentTarget),
352
433
  onPointerEnter: (e) => {
353
- k && e.pointerType === "mouse" && I(!0);
434
+ P && e.pointerType === "mouse" && R(!0);
354
435
  },
355
- onPointerMove: ge,
436
+ onPointerMove: Ce,
356
437
  onPointerLeave: () => {
357
- j.current || (I(!1), L || (R(0), z(0)));
438
+ E.current || (R(!1), z || (H(0), U(0)));
358
439
  }
359
440
  }, $ = (e) => {
360
- A.current = e;
441
+ T.current = e;
361
442
  };
362
- return T === "anchor" && G ? /* @__PURE__ */ a("a", {
443
+ return A === "anchor" && q ? /* @__PURE__ */ a("a", {
363
444
  ref: $,
364
- className: J,
365
- style: Y,
366
- href: G,
367
- target: ne,
368
- rel: g,
369
- "aria-label": p,
370
- onClick: ve,
371
- ...Q,
372
- children: Z
373
- }) : T === "button" ? /* @__PURE__ */ a("button", {
445
+ className: X,
446
+ style: Z,
447
+ href: q,
448
+ target: _,
449
+ rel: te,
450
+ "aria-label": m,
451
+ onClick: Te,
452
+ ...ke,
453
+ children: Oe
454
+ }) : A === "button" ? /* @__PURE__ */ a("button", {
374
455
  type: "button",
375
456
  ref: $,
376
- className: J,
377
- style: Y,
378
- "aria-label": p,
379
- onClick: ve,
380
- ...Q,
381
- children: Z
457
+ className: X,
458
+ style: Z,
459
+ "aria-label": m,
460
+ onClick: Te,
461
+ ...ke,
462
+ children: Oe
382
463
  }) : /* @__PURE__ */ a("div", {
383
464
  ref: $,
384
- className: J,
385
- style: Y,
386
- role: p ? "img" : void 0,
387
- "aria-label": p || void 0,
388
- "aria-hidden": p ? void 0 : !0,
389
- ...Q,
390
- children: Z
465
+ className: X,
466
+ style: Z,
467
+ role: m ? "img" : void 0,
468
+ "aria-label": m || void 0,
469
+ "aria-hidden": m ? void 0 : !0,
470
+ ...ke,
471
+ children: Oe
391
472
  });
392
473
  }
393
474
  //#endregion
394
- export { I as ExperienceThumbnail };
475
+ export { he as ExperienceThumbnail };
395
476
 
396
477
  //# sourceMappingURL=thumbnail.js.map