@ai-ad-network/frontend-sdk 1.0.0 → 1.0.1
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/index.esm.js +578 -1872
- package/dist/index.js +10 -10
- package/docs/COMPONENT_DOCUMENTATION.md +639 -0
- package/docs/README.md +97 -0
- package/package.json +4 -2
package/dist/index.esm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import de, { useState as E, useRef as H, useCallback as z, useEffect as je, createContext as ir, useContext as lr, useMemo as cr, Component as dr } from "react";
|
|
2
|
+
import ur from "swr";
|
|
3
|
+
var ct;
|
|
4
|
+
(function(e) {
|
|
5
|
+
e.SHOPPING = "shopping", e.LEAD_GEN = "lead_gen", e.SOFTWARE = "software", e.CONTENT = "content", e.GENERIC = "generic";
|
|
6
|
+
})(ct || (ct = {}));
|
|
7
7
|
const xt = "/api/v1";
|
|
8
|
-
function
|
|
8
|
+
function pr() {
|
|
9
9
|
if (typeof window < "u") {
|
|
10
10
|
const e = window.__AD_CONFIG__;
|
|
11
11
|
return e != null && e.apiKey ? e.apiKey : window.__AD_API_KEY__;
|
|
@@ -15,7 +15,7 @@ async function bt(e, r) {
|
|
|
15
15
|
var c;
|
|
16
16
|
const n = {
|
|
17
17
|
"Content-Type": "application/json"
|
|
18
|
-
}, s =
|
|
18
|
+
}, s = pr();
|
|
19
19
|
s && (n.Authorization = `Bearer ${s}`, n["X-API-Key"] = s);
|
|
20
20
|
const l = await fetch(e, {
|
|
21
21
|
method: "POST",
|
|
@@ -24,23 +24,13 @@ async function bt(e, r) {
|
|
|
24
24
|
});
|
|
25
25
|
if (!l.ok) {
|
|
26
26
|
const i = await l.json().catch(() => ({}));
|
|
27
|
-
throw new Error(
|
|
28
|
-
((c = i.error) == null ? void 0 : c.message) || `HTTP error! status: ${l.status}`
|
|
29
|
-
);
|
|
27
|
+
throw new Error(((c = i.error) == null ? void 0 : c.message) || `HTTP error! status: ${l.status}`);
|
|
30
28
|
}
|
|
31
29
|
const a = await l.json();
|
|
32
30
|
return a.success && a.data ? a.data : a;
|
|
33
31
|
}
|
|
34
|
-
function
|
|
35
|
-
const {
|
|
36
|
-
enabled: l = !0,
|
|
37
|
-
formats: a = ["action_card", "suffix"],
|
|
38
|
-
placement: c = "post_response",
|
|
39
|
-
apiBaseUrl: i = xt
|
|
40
|
-
} = s, [d, m] = E([]), p = H(!1), f = H(), y = $(
|
|
41
|
-
() => `${i}/ads/decision`,
|
|
42
|
-
[i]
|
|
43
|
-
), N = $(() => {
|
|
32
|
+
function mr(e, r, n, s = {}) {
|
|
33
|
+
const { enabled: l = !0, formats: a = ["action_card", "suffix"], placement: c = "post_response", apiBaseUrl: i = xt } = s, [d, m] = E([]), p = H(!1), f = H(), y = z(() => `${i}/ads/decision`, [i]), N = z(() => {
|
|
44
34
|
if (!(!e || !n))
|
|
45
35
|
return {
|
|
46
36
|
query: e,
|
|
@@ -56,13 +46,9 @@ function hr(e, r, n, s = {}) {
|
|
|
56
46
|
errorRetryCount: 2,
|
|
57
47
|
errorRetryInterval: 5e3,
|
|
58
48
|
keepPreviousData: !0
|
|
59
|
-
}, { data: x, error: j, isValidating: w, mutate: k } =
|
|
60
|
-
v ? y() : null,
|
|
61
|
-
() => bt(y(), N()),
|
|
62
|
-
b
|
|
63
|
-
);
|
|
49
|
+
}, { data: x, error: j, isValidating: w, mutate: k } = ur(v ? y() : null, () => bt(y(), N()), b);
|
|
64
50
|
x != null && x.ads && x.ads.length > 0 && (m(x.ads), p.current = !0, f.current = e), e !== f.current && w && (p.current = !1);
|
|
65
|
-
const S =
|
|
51
|
+
const S = z(() => {
|
|
66
52
|
p.current = !1, k();
|
|
67
53
|
}, [k]);
|
|
68
54
|
return {
|
|
@@ -74,30 +60,23 @@ function hr(e, r, n, s = {}) {
|
|
|
74
60
|
refetch: S
|
|
75
61
|
};
|
|
76
62
|
}
|
|
77
|
-
function
|
|
78
|
-
const [r, n] = E([]), [s, l] = E(null), [a, c] = E(null), [i, d] = E(!1), [m, p] = E(null), {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
p(k instanceof Error ? k : new Error("Failed to fetch ads")), n([]), l(null), c(null);
|
|
95
|
-
} finally {
|
|
96
|
-
d(!1);
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
[N, f, y]
|
|
100
|
-
), b = $(() => {
|
|
63
|
+
function yn(e = {}) {
|
|
64
|
+
const [r, n] = E([]), [s, l] = E(null), [a, c] = E(null), [i, d] = E(!1), [m, p] = E(null), { formats: f = ["action_card", "suffix"], placement: y = "post_response", apiBaseUrl: N = xt } = e, v = z(async (x, j, w) => {
|
|
65
|
+
d(!0), p(null);
|
|
66
|
+
try {
|
|
67
|
+
const k = `${N}/ads/decision`, D = await bt(k, {
|
|
68
|
+
query: x,
|
|
69
|
+
response: j,
|
|
70
|
+
adFormats: w || f,
|
|
71
|
+
placement: y
|
|
72
|
+
});
|
|
73
|
+
n(D.ads || []), l(D.intent || null), c(D.routing || null);
|
|
74
|
+
} catch (k) {
|
|
75
|
+
p(k instanceof Error ? k : new Error("Failed to fetch ads")), n([]), l(null), c(null);
|
|
76
|
+
} finally {
|
|
77
|
+
d(!1);
|
|
78
|
+
}
|
|
79
|
+
}, [N, f, y]), b = z(() => {
|
|
101
80
|
n([]), l(null), c(null), p(null);
|
|
102
81
|
}, []);
|
|
103
82
|
return {
|
|
@@ -110,18 +89,13 @@ function kn(e = {}) {
|
|
|
110
89
|
reset: b
|
|
111
90
|
};
|
|
112
91
|
}
|
|
113
|
-
function
|
|
114
|
-
const { pageSize: l = 5, ...a } = s, [c, i] = E([]), [d, m] = E(1), { ads: p, intent: f, routing: y, isLoading: N, error: v } =
|
|
115
|
-
e,
|
|
116
|
-
r,
|
|
117
|
-
n,
|
|
118
|
-
{ ...a, formats: [...a.formats, "source"] }
|
|
119
|
-
);
|
|
92
|
+
function vn(e, r, n, s = {}) {
|
|
93
|
+
const { pageSize: l = 5, ...a } = s, [c, i] = E([]), [d, m] = E(1), { ads: p, intent: f, routing: y, isLoading: N, error: v } = mr(e, r, n, { ...a, formats: [...a.formats, "source"] });
|
|
120
94
|
p.length > 0 && i((j) => {
|
|
121
95
|
const w = p.filter((k) => !j.some((S) => S.id === k.id));
|
|
122
96
|
return [...j, ...w];
|
|
123
97
|
});
|
|
124
|
-
const b =
|
|
98
|
+
const b = z(() => {
|
|
125
99
|
m((j) => j + 1);
|
|
126
100
|
}, []), x = c.length < d * l;
|
|
127
101
|
return {
|
|
@@ -134,7 +108,7 @@ function _n(e, r, n, s = {}) {
|
|
|
134
108
|
hasMore: x
|
|
135
109
|
};
|
|
136
110
|
}
|
|
137
|
-
function
|
|
111
|
+
function wn(e) {
|
|
138
112
|
var r, n;
|
|
139
113
|
return {
|
|
140
114
|
id: e.original.id,
|
|
@@ -161,50 +135,43 @@ function Nn(e) {
|
|
|
161
135
|
}
|
|
162
136
|
};
|
|
163
137
|
}
|
|
164
|
-
function
|
|
165
|
-
const {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
async (N) => {
|
|
171
|
-
if (s) {
|
|
172
|
-
if (p.current) {
|
|
173
|
-
console.warn("[useAdSlots] Request already in progress, skipping duplicate request");
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
i(!0), m(null), p.current = !0;
|
|
177
|
-
try {
|
|
178
|
-
const v = await fetch(`${r}/ads/request`, {
|
|
179
|
-
method: "POST",
|
|
180
|
-
headers: {
|
|
181
|
-
"Content-Type": "application/json"
|
|
182
|
-
},
|
|
183
|
-
body: JSON.stringify({
|
|
184
|
-
conversationContext: N.conversationContext,
|
|
185
|
-
userContext: N.userContext,
|
|
186
|
-
slots: n
|
|
187
|
-
})
|
|
188
|
-
});
|
|
189
|
-
if (!v.ok)
|
|
190
|
-
throw new Error(`Ad request failed: ${v.status} ${v.statusText}`);
|
|
191
|
-
const b = await v.json();
|
|
192
|
-
if (!b.success)
|
|
193
|
-
throw new Error(b.error || "Ad request failed");
|
|
194
|
-
const x = b.data, j = {};
|
|
195
|
-
x.slots.forEach((w) => {
|
|
196
|
-
j[w.slotId] = w;
|
|
197
|
-
}), a(j);
|
|
198
|
-
} catch (v) {
|
|
199
|
-
const b = v;
|
|
200
|
-
m(b), console.error("[useAdSlots] Request failed:", b);
|
|
201
|
-
} finally {
|
|
202
|
-
i(!1), p.current = !1;
|
|
203
|
-
}
|
|
138
|
+
function fr(e) {
|
|
139
|
+
const { apiBaseUrl: r = "/api/v1", slots: n, enabled: s = !0 } = e, [l, a] = E({}), [c, i] = E(!1), [d, m] = E(null), p = H(!1), f = z(async (N) => {
|
|
140
|
+
if (s) {
|
|
141
|
+
if (p.current) {
|
|
142
|
+
console.warn("[useAdSlots] Request already in progress, skipping duplicate request");
|
|
143
|
+
return;
|
|
204
144
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
145
|
+
i(!0), m(null), p.current = !0;
|
|
146
|
+
try {
|
|
147
|
+
const v = await fetch(`${r}/ads/request`, {
|
|
148
|
+
method: "POST",
|
|
149
|
+
headers: {
|
|
150
|
+
"Content-Type": "application/json"
|
|
151
|
+
},
|
|
152
|
+
body: JSON.stringify({
|
|
153
|
+
conversationContext: N.conversationContext,
|
|
154
|
+
userContext: N.userContext,
|
|
155
|
+
slots: n
|
|
156
|
+
})
|
|
157
|
+
});
|
|
158
|
+
if (!v.ok)
|
|
159
|
+
throw new Error(`Ad request failed: ${v.status} ${v.statusText}`);
|
|
160
|
+
const b = await v.json();
|
|
161
|
+
if (!b.success)
|
|
162
|
+
throw new Error(b.error || "Ad request failed");
|
|
163
|
+
const x = b.data, j = {};
|
|
164
|
+
x.slots.forEach((w) => {
|
|
165
|
+
j[w.slotId] = w;
|
|
166
|
+
}), a(j);
|
|
167
|
+
} catch (v) {
|
|
168
|
+
const b = v;
|
|
169
|
+
m(b), console.error("[useAdSlots] Request failed:", b);
|
|
170
|
+
} finally {
|
|
171
|
+
i(!1), p.current = !1;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}, [s, r, n]), y = z(() => {
|
|
208
175
|
a({}), m(null);
|
|
209
176
|
}, []);
|
|
210
177
|
return {
|
|
@@ -215,8 +182,8 @@ function xr(e) {
|
|
|
215
182
|
clearSlots: y
|
|
216
183
|
};
|
|
217
184
|
}
|
|
218
|
-
function
|
|
219
|
-
const r =
|
|
185
|
+
function jn(e) {
|
|
186
|
+
const r = fr({
|
|
220
187
|
apiBaseUrl: e.apiBaseUrl,
|
|
221
188
|
slots: [e.slot],
|
|
222
189
|
enabled: e.enabled
|
|
@@ -228,41 +195,38 @@ function Cn(e) {
|
|
|
228
195
|
hasAds: (n == null ? void 0 : n.status) === "filled" && n.ads.length > 0
|
|
229
196
|
};
|
|
230
197
|
}
|
|
231
|
-
function
|
|
232
|
-
const [r, n] = E(!1), [s, l] = E(null), [a, c] = E(null), i =
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
},
|
|
264
|
-
[e.enabled, e.apiBaseUrl]
|
|
265
|
-
);
|
|
198
|
+
function kn(e) {
|
|
199
|
+
const [r, n] = E(!1), [s, l] = E(null), [a, c] = E(null), i = z(async (d) => {
|
|
200
|
+
if (!e.enabled)
|
|
201
|
+
return null;
|
|
202
|
+
n(!0), l(null);
|
|
203
|
+
try {
|
|
204
|
+
const m = await fetch(`${e.apiBaseUrl || "/api/v1"}/chat/completions`, {
|
|
205
|
+
method: "POST",
|
|
206
|
+
headers: {
|
|
207
|
+
"Content-Type": "application/json"
|
|
208
|
+
},
|
|
209
|
+
body: JSON.stringify({
|
|
210
|
+
messages: d,
|
|
211
|
+
adEnabled: !0,
|
|
212
|
+
adFormats: ["action_card", "suffix", "followup", "source", "lead_gen"],
|
|
213
|
+
stream: !1
|
|
214
|
+
})
|
|
215
|
+
});
|
|
216
|
+
if (!m.ok)
|
|
217
|
+
throw new Error(`Chat request failed: ${m.status}`);
|
|
218
|
+
const p = await m.json();
|
|
219
|
+
if (!p.success)
|
|
220
|
+
throw new Error(p.error || "Chat request failed");
|
|
221
|
+
const f = p.data;
|
|
222
|
+
return c(f), f;
|
|
223
|
+
} catch (m) {
|
|
224
|
+
const p = m;
|
|
225
|
+
return l(p), console.error("[useChatWithAds] Request failed:", p), null;
|
|
226
|
+
} finally {
|
|
227
|
+
n(!1);
|
|
228
|
+
}
|
|
229
|
+
}, [e.enabled, e.apiBaseUrl]);
|
|
266
230
|
return {
|
|
267
231
|
response: a,
|
|
268
232
|
isLoading: r,
|
|
@@ -270,6 +234,21 @@ function Sn(e) {
|
|
|
270
234
|
sendMessage: i
|
|
271
235
|
};
|
|
272
236
|
}
|
|
237
|
+
async function _n(e, r = {}) {
|
|
238
|
+
const n = r.apiBaseUrl || "/api/v1", s = await fetch(`${n}/ads/request`, {
|
|
239
|
+
method: "POST",
|
|
240
|
+
headers: {
|
|
241
|
+
"Content-Type": "application/json"
|
|
242
|
+
},
|
|
243
|
+
body: JSON.stringify(e)
|
|
244
|
+
});
|
|
245
|
+
if (!s.ok)
|
|
246
|
+
throw new Error(`Ad request failed: ${s.status} ${s.statusText}`);
|
|
247
|
+
const l = await s.json();
|
|
248
|
+
if (!l.success)
|
|
249
|
+
throw new Error(l.error || "Ad request failed");
|
|
250
|
+
return l.data;
|
|
251
|
+
}
|
|
273
252
|
async function yt(e) {
|
|
274
253
|
try {
|
|
275
254
|
return await fetch(e, {
|
|
@@ -282,7 +261,7 @@ async function yt(e) {
|
|
|
282
261
|
return console.error("[Ad Tracking] Failed to track impression:", r), !1;
|
|
283
262
|
}
|
|
284
263
|
}
|
|
285
|
-
async function
|
|
264
|
+
async function Ge(e) {
|
|
286
265
|
try {
|
|
287
266
|
return await fetch(e, {
|
|
288
267
|
method: "GET",
|
|
@@ -302,7 +281,7 @@ function vt(e) {
|
|
|
302
281
|
}
|
|
303
282
|
return Math.abs(r).toString(36);
|
|
304
283
|
}
|
|
305
|
-
function
|
|
284
|
+
function gr(e, r, n = 3) {
|
|
306
285
|
const s = `ad_impressions_${e}_${r}`, l = Date.now(), a = 60 * 60 * 1e3;
|
|
307
286
|
try {
|
|
308
287
|
const c = localStorage.getItem(s);
|
|
@@ -319,24 +298,15 @@ function wt(e, r) {
|
|
|
319
298
|
try {
|
|
320
299
|
const a = localStorage.getItem(n);
|
|
321
300
|
if (!a) {
|
|
322
|
-
localStorage.setItem(
|
|
323
|
-
n,
|
|
324
|
-
JSON.stringify({ impressions: 1, lastSeen: s })
|
|
325
|
-
);
|
|
301
|
+
localStorage.setItem(n, JSON.stringify({ impressions: 1, lastSeen: s }));
|
|
326
302
|
return;
|
|
327
303
|
}
|
|
328
304
|
const c = JSON.parse(a);
|
|
329
305
|
if (s - c.lastSeen > l) {
|
|
330
|
-
localStorage.setItem(
|
|
331
|
-
n,
|
|
332
|
-
JSON.stringify({ impressions: 1, lastSeen: s })
|
|
333
|
-
);
|
|
306
|
+
localStorage.setItem(n, JSON.stringify({ impressions: 1, lastSeen: s }));
|
|
334
307
|
return;
|
|
335
308
|
}
|
|
336
|
-
localStorage.setItem(
|
|
337
|
-
n,
|
|
338
|
-
JSON.stringify({ impressions: c.impressions + 1, lastSeen: s })
|
|
339
|
-
);
|
|
309
|
+
localStorage.setItem(n, JSON.stringify({ impressions: c.impressions + 1, lastSeen: s }));
|
|
340
310
|
} catch (a) {
|
|
341
311
|
console.error("[Ad Tracking] Failed to record impression:", a);
|
|
342
312
|
}
|
|
@@ -346,48 +316,37 @@ function jt() {
|
|
|
346
316
|
return e || (e = `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, sessionStorage.setItem("ad_session_id", e)), e;
|
|
347
317
|
}
|
|
348
318
|
function Q(e, r = {}) {
|
|
349
|
-
const {
|
|
350
|
-
intersectionThreshold: n = 0.5,
|
|
351
|
-
minViewTimeMs: s = 1e3,
|
|
352
|
-
onClick: l,
|
|
353
|
-
onImpression: a
|
|
354
|
-
} = r, c = H(null), i = H(!1), d = H(null), [m, p] = E(!1), [f, y] = E(!1), N = jt(), v = vt(N);
|
|
319
|
+
const { intersectionThreshold: n = 0.5, minViewTimeMs: s = 1e3, onClick: l, onImpression: a } = r, c = H(null), i = H(!1), d = H(null), [m, p] = E(!1), [f, y] = E(!1), N = jt(), v = vt(N);
|
|
355
320
|
je(() => {
|
|
356
321
|
if (!c.current || !e || i.current)
|
|
357
322
|
return;
|
|
358
|
-
if (!
|
|
323
|
+
if (!gr(v, e.id)) {
|
|
359
324
|
console.log("[Ad Tracking] Frequency limit reached for ad:", e.id);
|
|
360
325
|
return;
|
|
361
326
|
}
|
|
362
|
-
const x = new IntersectionObserver(
|
|
363
|
-
(
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
rootMargin: "0px"
|
|
375
|
-
}
|
|
376
|
-
);
|
|
327
|
+
const x = new IntersectionObserver((j) => {
|
|
328
|
+
j.forEach((w) => {
|
|
329
|
+
w.isIntersecting && w.intersectionRatio >= n ? (y(!0), d.current = setTimeout(() => {
|
|
330
|
+
yt(e.tracking.impression_url).then((k) => {
|
|
331
|
+
k && (i.current = !0, p(!0), wt(v, e.id), a == null || a(e), console.log("[Ad Tracking] Impression fired for", e.id));
|
|
332
|
+
});
|
|
333
|
+
}, s)) : (y(!1), d.current && (clearTimeout(d.current), d.current = null));
|
|
334
|
+
});
|
|
335
|
+
}, {
|
|
336
|
+
threshold: [n],
|
|
337
|
+
rootMargin: "0px"
|
|
338
|
+
});
|
|
377
339
|
return x.observe(c.current), () => {
|
|
378
340
|
x.disconnect(), d.current && clearTimeout(d.current);
|
|
379
341
|
};
|
|
380
342
|
}, [e, n, s, v, a]);
|
|
381
|
-
const b =
|
|
382
|
-
(
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
},
|
|
389
|
-
[e, l]
|
|
390
|
-
);
|
|
343
|
+
const b = z((x) => {
|
|
344
|
+
x.preventDefault(), e && Ge(e.tracking.click_url).then((j) => {
|
|
345
|
+
j && (console.log("[Ad Tracking] Click fired for", e.id), l == null || l(e), setTimeout(() => {
|
|
346
|
+
window.open(e.tracking.click_url, "_blank", "noopener,noreferrer");
|
|
347
|
+
}, 100));
|
|
348
|
+
});
|
|
349
|
+
}, [e, l]);
|
|
391
350
|
return {
|
|
392
351
|
impressionRef: c,
|
|
393
352
|
handleClick: b,
|
|
@@ -395,87 +354,70 @@ function Q(e, r = {}) {
|
|
|
395
354
|
isIntersecting: f
|
|
396
355
|
};
|
|
397
356
|
}
|
|
398
|
-
function
|
|
399
|
-
const {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
onClick: l,
|
|
403
|
-
onImpression: a
|
|
404
|
-
} = r, c = H(/* @__PURE__ */ new Map()), i = H(/* @__PURE__ */ new Map()), [d, m] = E({}), p = H(/* @__PURE__ */ new Set()), f = jt(), y = vt(f), N = $(
|
|
405
|
-
(b) => (x) => {
|
|
406
|
-
x ? c.current.set(b, x) : c.current.delete(b);
|
|
407
|
-
},
|
|
408
|
-
[]
|
|
409
|
-
);
|
|
357
|
+
function Nn(e, r = {}) {
|
|
358
|
+
const { intersectionThreshold: n = 0.5, minViewTimeMs: s = 1e3, onClick: l, onImpression: a } = r, c = H(/* @__PURE__ */ new Map()), i = H(/* @__PURE__ */ new Map()), [d, m] = E({}), p = H(/* @__PURE__ */ new Set()), f = jt(), y = vt(f), N = z((b) => (x) => {
|
|
359
|
+
x ? c.current.set(b, x) : c.current.delete(b);
|
|
360
|
+
}, []);
|
|
410
361
|
je(() => {
|
|
411
362
|
const b = Array.from(c.current.values());
|
|
412
|
-
if (b.length === 0)
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
if (
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
rootMargin: "0px"
|
|
439
|
-
}
|
|
440
|
-
);
|
|
363
|
+
if (b.length === 0)
|
|
364
|
+
return;
|
|
365
|
+
const x = new IntersectionObserver((j) => {
|
|
366
|
+
j.forEach((w) => {
|
|
367
|
+
var D;
|
|
368
|
+
const k = (D = Array.from(c.current.entries()).find(([, L]) => L === w.target)) == null ? void 0 : D[0];
|
|
369
|
+
if (!k)
|
|
370
|
+
return;
|
|
371
|
+
const S = e.find((L) => L.id === k);
|
|
372
|
+
if (!(!S || p.current.has(k)))
|
|
373
|
+
if (w.isIntersecting && w.intersectionRatio >= n) {
|
|
374
|
+
const L = setTimeout(() => {
|
|
375
|
+
yt(S.tracking.impression_url).then((re) => {
|
|
376
|
+
re && (p.current.add(k), m((ne) => ({ ...ne, [k]: !0 })), wt(y, S.id), a == null || a(S));
|
|
377
|
+
});
|
|
378
|
+
}, s);
|
|
379
|
+
i.current.set(k, L);
|
|
380
|
+
} else {
|
|
381
|
+
const L = i.current.get(k);
|
|
382
|
+
L && (clearTimeout(L), i.current.delete(k));
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
}, {
|
|
386
|
+
threshold: [n],
|
|
387
|
+
rootMargin: "0px"
|
|
388
|
+
});
|
|
441
389
|
return b.forEach((j) => x.observe(j)), () => {
|
|
442
390
|
x.disconnect(), i.current.forEach((j) => clearTimeout(j));
|
|
443
391
|
};
|
|
444
392
|
}, [e, n, s, y, a]);
|
|
445
|
-
const v =
|
|
446
|
-
(
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
},
|
|
453
|
-
[l]
|
|
454
|
-
);
|
|
393
|
+
const v = z((b) => (x) => {
|
|
394
|
+
x.preventDefault(), Ge(b.tracking.click_url).then((j) => {
|
|
395
|
+
j && (l == null || l(b), setTimeout(() => {
|
|
396
|
+
window.open(b.tracking.click_url, "_blank", "noopener,noreferrer");
|
|
397
|
+
}, 100));
|
|
398
|
+
});
|
|
399
|
+
}, [l]);
|
|
455
400
|
return {
|
|
456
401
|
getRef: N,
|
|
457
402
|
handleClick: v,
|
|
458
403
|
impressionStates: d
|
|
459
404
|
};
|
|
460
405
|
}
|
|
461
|
-
function
|
|
406
|
+
function Cn(e, r = {}) {
|
|
462
407
|
const [n, s] = E(!1);
|
|
463
408
|
return {
|
|
464
|
-
handleClick:
|
|
465
|
-
(
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
},
|
|
473
|
-
[e, n, r.onClick]
|
|
474
|
-
),
|
|
409
|
+
handleClick: z((a) => {
|
|
410
|
+
a.preventDefault(), !(!e || n) && (s(!0), Ge(e.tracking.click_url).then((c) => {
|
|
411
|
+
var i;
|
|
412
|
+
s(!1), c && ((i = r.onClick) == null || i.call(r, e), setTimeout(() => {
|
|
413
|
+
window.open(e.tracking.click_url, "_blank", "noopener,noreferrer");
|
|
414
|
+
}, 100));
|
|
415
|
+
}));
|
|
416
|
+
}, [e, n, r.onClick]),
|
|
475
417
|
isClicking: n
|
|
476
418
|
};
|
|
477
419
|
}
|
|
478
|
-
var
|
|
420
|
+
var Be = { exports: {} }, xe = {};
|
|
479
421
|
/**
|
|
480
422
|
* @license React
|
|
481
423
|
* react-jsx-runtime.production.min.js
|
|
@@ -486,7 +428,7 @@ var Ue = { exports: {} }, xe = {};
|
|
|
486
428
|
* LICENSE file in the root directory of this source tree.
|
|
487
429
|
*/
|
|
488
430
|
var dt;
|
|
489
|
-
function
|
|
431
|
+
function hr() {
|
|
490
432
|
if (dt) return xe;
|
|
491
433
|
dt = 1;
|
|
492
434
|
var e = de, r = Symbol.for("react.element"), n = Symbol.for("react.fragment"), s = Object.prototype.hasOwnProperty, l = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, a = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
@@ -510,7 +452,7 @@ var be = {};
|
|
|
510
452
|
* LICENSE file in the root directory of this source tree.
|
|
511
453
|
*/
|
|
512
454
|
var ut;
|
|
513
|
-
function
|
|
455
|
+
function xr() {
|
|
514
456
|
return ut || (ut = 1, process.env.NODE_ENV !== "production" && function() {
|
|
515
457
|
var e = de, r = Symbol.for("react.element"), n = Symbol.for("react.portal"), s = Symbol.for("react.fragment"), l = Symbol.for("react.strict_mode"), a = Symbol.for("react.profiler"), c = Symbol.for("react.provider"), i = Symbol.for("react.context"), d = Symbol.for("react.forward_ref"), m = Symbol.for("react.suspense"), p = Symbol.for("react.suspense_list"), f = Symbol.for("react.memo"), y = Symbol.for("react.lazy"), N = Symbol.for("react.offscreen"), v = Symbol.iterator, b = "@@iterator";
|
|
516
458
|
function x(o) {
|
|
@@ -537,10 +479,10 @@ function vr() {
|
|
|
537
479
|
I.unshift("Warning: " + u), Function.prototype.apply.call(console[o], console, I);
|
|
538
480
|
}
|
|
539
481
|
}
|
|
540
|
-
var S = !1,
|
|
482
|
+
var S = !1, D = !1, L = !1, re = !1, ne = !1, oe;
|
|
541
483
|
oe = Symbol.for("react.module.reference");
|
|
542
484
|
function pe(o) {
|
|
543
|
-
return !!(typeof o == "string" || typeof o == "function" || o === s || o === a || ne || o === l || o === m || o === p || re || o === N || S ||
|
|
485
|
+
return !!(typeof o == "string" || typeof o == "function" || o === s || o === a || ne || o === l || o === m || o === p || re || o === N || S || D || L || typeof o == "object" && o !== null && (o.$$typeof === y || o.$$typeof === f || o.$$typeof === c || o.$$typeof === i || o.$$typeof === d || // This needs to include all possible module reference object
|
|
544
486
|
// types supported by any Flight configuration anywhere since
|
|
545
487
|
// we don't know which Flight build this will end up being used
|
|
546
488
|
// with.
|
|
@@ -601,18 +543,18 @@ function vr() {
|
|
|
601
543
|
}
|
|
602
544
|
return null;
|
|
603
545
|
}
|
|
604
|
-
var U = Object.assign, Y = 0, ee, fe, se, K, ge, W,
|
|
605
|
-
function
|
|
546
|
+
var U = Object.assign, Y = 0, ee, fe, se, K, ge, W, Ve;
|
|
547
|
+
function He() {
|
|
606
548
|
}
|
|
607
|
-
|
|
608
|
-
function
|
|
549
|
+
He.__reactDisabledLog = !0;
|
|
550
|
+
function Dt() {
|
|
609
551
|
{
|
|
610
552
|
if (Y === 0) {
|
|
611
|
-
ee = console.log, fe = console.info, se = console.warn, K = console.error, ge = console.group, W = console.groupCollapsed,
|
|
553
|
+
ee = console.log, fe = console.info, se = console.warn, K = console.error, ge = console.group, W = console.groupCollapsed, Ve = console.groupEnd;
|
|
612
554
|
var o = {
|
|
613
555
|
configurable: !0,
|
|
614
556
|
enumerable: !0,
|
|
615
|
-
value:
|
|
557
|
+
value: He,
|
|
616
558
|
writable: !0
|
|
617
559
|
};
|
|
618
560
|
Object.defineProperties(console, {
|
|
@@ -628,7 +570,7 @@ function vr() {
|
|
|
628
570
|
Y++;
|
|
629
571
|
}
|
|
630
572
|
}
|
|
631
|
-
function
|
|
573
|
+
function Mt() {
|
|
632
574
|
{
|
|
633
575
|
if (Y--, Y === 0) {
|
|
634
576
|
var o = {
|
|
@@ -656,34 +598,34 @@ function vr() {
|
|
|
656
598
|
value: W
|
|
657
599
|
}),
|
|
658
600
|
groupEnd: U({}, o, {
|
|
659
|
-
value:
|
|
601
|
+
value: Ve
|
|
660
602
|
})
|
|
661
603
|
});
|
|
662
604
|
}
|
|
663
605
|
Y < 0 && w("disabledDepth fell below zero. This is a bug in React. Please file an issue.");
|
|
664
606
|
}
|
|
665
607
|
}
|
|
666
|
-
var
|
|
608
|
+
var Pe = j.ReactCurrentDispatcher, Ie;
|
|
667
609
|
function _e(o, u, g) {
|
|
668
610
|
{
|
|
669
|
-
if (
|
|
611
|
+
if (Ie === void 0)
|
|
670
612
|
try {
|
|
671
613
|
throw Error();
|
|
672
614
|
} catch (T) {
|
|
673
615
|
var _ = T.stack.trim().match(/\n( *(at )?)/);
|
|
674
|
-
|
|
616
|
+
Ie = _ && _[1] || "";
|
|
675
617
|
}
|
|
676
618
|
return `
|
|
677
|
-
` +
|
|
619
|
+
` + Ie + o;
|
|
678
620
|
}
|
|
679
621
|
}
|
|
680
|
-
var
|
|
622
|
+
var De = !1, Ne;
|
|
681
623
|
{
|
|
682
|
-
var
|
|
683
|
-
Ne = new
|
|
624
|
+
var Lt = typeof WeakMap == "function" ? WeakMap : Map;
|
|
625
|
+
Ne = new Lt();
|
|
684
626
|
}
|
|
685
|
-
function
|
|
686
|
-
if (!o ||
|
|
627
|
+
function Je(o, u) {
|
|
628
|
+
if (!o || De)
|
|
687
629
|
return "";
|
|
688
630
|
{
|
|
689
631
|
var g = Ne.get(o);
|
|
@@ -691,11 +633,11 @@ function vr() {
|
|
|
691
633
|
return g;
|
|
692
634
|
}
|
|
693
635
|
var _;
|
|
694
|
-
|
|
636
|
+
De = !0;
|
|
695
637
|
var T = Error.prepareStackTrace;
|
|
696
638
|
Error.prepareStackTrace = void 0;
|
|
697
639
|
var I;
|
|
698
|
-
I =
|
|
640
|
+
I = Pe.current, Pe.current = null, Dt();
|
|
699
641
|
try {
|
|
700
642
|
if (u) {
|
|
701
643
|
var R = function() {
|
|
@@ -731,30 +673,30 @@ function vr() {
|
|
|
731
673
|
} catch (B) {
|
|
732
674
|
if (B && _ && typeof B.stack == "string") {
|
|
733
675
|
for (var A = B.stack.split(`
|
|
734
|
-
`),
|
|
735
|
-
`),
|
|
676
|
+
`), $ = _.stack.split(`
|
|
677
|
+
`), O = A.length - 1, F = $.length - 1; O >= 1 && F >= 0 && A[O] !== $[F]; )
|
|
736
678
|
F--;
|
|
737
|
-
for (;
|
|
738
|
-
if (A[
|
|
739
|
-
if (
|
|
679
|
+
for (; O >= 1 && F >= 0; O--, F--)
|
|
680
|
+
if (A[O] !== $[F]) {
|
|
681
|
+
if (O !== 1 || F !== 1)
|
|
740
682
|
do
|
|
741
|
-
if (
|
|
683
|
+
if (O--, F--, F < 0 || A[O] !== $[F]) {
|
|
742
684
|
var G = `
|
|
743
|
-
` + A[
|
|
685
|
+
` + A[O].replace(" at new ", " at ");
|
|
744
686
|
return o.displayName && G.includes("<anonymous>") && (G = G.replace("<anonymous>", o.displayName)), typeof o == "function" && Ne.set(o, G), G;
|
|
745
687
|
}
|
|
746
|
-
while (
|
|
688
|
+
while (O >= 1 && F >= 0);
|
|
747
689
|
break;
|
|
748
690
|
}
|
|
749
691
|
}
|
|
750
692
|
} finally {
|
|
751
|
-
|
|
693
|
+
De = !1, Pe.current = I, Mt(), Error.prepareStackTrace = T;
|
|
752
694
|
}
|
|
753
695
|
var ie = o ? o.displayName || o.name : "", te = ie ? _e(ie) : "";
|
|
754
696
|
return typeof o == "function" && Ne.set(o, te), te;
|
|
755
697
|
}
|
|
756
|
-
function
|
|
757
|
-
return
|
|
698
|
+
function Ot(o, u, g) {
|
|
699
|
+
return Je(o, !1);
|
|
758
700
|
}
|
|
759
701
|
function Ft(o) {
|
|
760
702
|
var u = o.prototype;
|
|
@@ -764,7 +706,7 @@ function vr() {
|
|
|
764
706
|
if (o == null)
|
|
765
707
|
return "";
|
|
766
708
|
if (typeof o == "function")
|
|
767
|
-
return
|
|
709
|
+
return Je(o, Ft(o));
|
|
768
710
|
if (typeof o == "string")
|
|
769
711
|
return _e(o);
|
|
770
712
|
switch (o) {
|
|
@@ -776,7 +718,7 @@ function vr() {
|
|
|
776
718
|
if (typeof o == "object")
|
|
777
719
|
switch (o.$$typeof) {
|
|
778
720
|
case d:
|
|
779
|
-
return
|
|
721
|
+
return Ot(o.render);
|
|
780
722
|
case f:
|
|
781
723
|
return Ce(o.type, u, g);
|
|
782
724
|
case y: {
|
|
@@ -789,15 +731,15 @@ function vr() {
|
|
|
789
731
|
}
|
|
790
732
|
return "";
|
|
791
733
|
}
|
|
792
|
-
var he = Object.prototype.hasOwnProperty,
|
|
734
|
+
var he = Object.prototype.hasOwnProperty, Ye = {}, Ke = j.ReactDebugCurrentFrame;
|
|
793
735
|
function Se(o) {
|
|
794
736
|
if (o) {
|
|
795
737
|
var u = o._owner, g = Ce(o.type, o._source, u ? u.type : null);
|
|
796
|
-
|
|
738
|
+
Ke.setExtraStackFrame(g);
|
|
797
739
|
} else
|
|
798
|
-
|
|
740
|
+
Ke.setExtraStackFrame(null);
|
|
799
741
|
}
|
|
800
|
-
function
|
|
742
|
+
function $t(o, u, g, _, T) {
|
|
801
743
|
{
|
|
802
744
|
var I = Function.call.bind(he);
|
|
803
745
|
for (var R in o)
|
|
@@ -805,20 +747,20 @@ function vr() {
|
|
|
805
747
|
var A = void 0;
|
|
806
748
|
try {
|
|
807
749
|
if (typeof o[R] != "function") {
|
|
808
|
-
var
|
|
809
|
-
throw
|
|
750
|
+
var $ = Error((_ || "React class") + ": " + g + " type `" + R + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof o[R] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
|
|
751
|
+
throw $.name = "Invariant Violation", $;
|
|
810
752
|
}
|
|
811
753
|
A = o[R](u, R, _, g, null, "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");
|
|
812
|
-
} catch (
|
|
813
|
-
A =
|
|
754
|
+
} catch (O) {
|
|
755
|
+
A = O;
|
|
814
756
|
}
|
|
815
|
-
A && !(A instanceof Error) && (Se(T), w("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", _ || "React class", g, R, typeof A), Se(null)), A instanceof Error && !(A.message in
|
|
757
|
+
A && !(A instanceof Error) && (Se(T), w("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).", _ || "React class", g, R, typeof A), Se(null)), A instanceof Error && !(A.message in Ye) && (Ye[A.message] = !0, Se(T), w("Failed %s type: %s", g, A.message), Se(null));
|
|
816
758
|
}
|
|
817
759
|
}
|
|
818
760
|
}
|
|
819
|
-
var
|
|
820
|
-
function
|
|
821
|
-
return
|
|
761
|
+
var zt = Array.isArray;
|
|
762
|
+
function Me(o) {
|
|
763
|
+
return zt(o);
|
|
822
764
|
}
|
|
823
765
|
function Bt(o) {
|
|
824
766
|
{
|
|
@@ -828,24 +770,24 @@ function vr() {
|
|
|
828
770
|
}
|
|
829
771
|
function Ut(o) {
|
|
830
772
|
try {
|
|
831
|
-
return
|
|
773
|
+
return Xe(o), !1;
|
|
832
774
|
} catch {
|
|
833
775
|
return !0;
|
|
834
776
|
}
|
|
835
777
|
}
|
|
836
|
-
function
|
|
778
|
+
function Xe(o) {
|
|
837
779
|
return "" + o;
|
|
838
780
|
}
|
|
839
|
-
function
|
|
781
|
+
function Ze(o) {
|
|
840
782
|
if (Ut(o))
|
|
841
|
-
return w("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Bt(o)),
|
|
783
|
+
return w("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.", Bt(o)), Xe(o);
|
|
842
784
|
}
|
|
843
|
-
var
|
|
785
|
+
var Qe = j.ReactCurrentOwner, Wt = {
|
|
844
786
|
key: !0,
|
|
845
787
|
ref: !0,
|
|
846
788
|
__self: !0,
|
|
847
789
|
__source: !0
|
|
848
|
-
},
|
|
790
|
+
}, et, tt;
|
|
849
791
|
function Gt(o) {
|
|
850
792
|
if (he.call(o, "ref")) {
|
|
851
793
|
var u = Object.getOwnPropertyDescriptor(o, "ref").get;
|
|
@@ -863,12 +805,12 @@ function vr() {
|
|
|
863
805
|
return o.key !== void 0;
|
|
864
806
|
}
|
|
865
807
|
function Vt(o, u) {
|
|
866
|
-
typeof o.ref == "string" &&
|
|
808
|
+
typeof o.ref == "string" && Qe.current;
|
|
867
809
|
}
|
|
868
810
|
function Ht(o, u) {
|
|
869
811
|
{
|
|
870
812
|
var g = function() {
|
|
871
|
-
|
|
813
|
+
et || (et = !0, w("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", u));
|
|
872
814
|
};
|
|
873
815
|
g.isReactWarning = !0, Object.defineProperty(o, "key", {
|
|
874
816
|
get: g,
|
|
@@ -879,7 +821,7 @@ function vr() {
|
|
|
879
821
|
function Jt(o, u) {
|
|
880
822
|
{
|
|
881
823
|
var g = function() {
|
|
882
|
-
|
|
824
|
+
tt || (tt = !0, w("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", u));
|
|
883
825
|
};
|
|
884
826
|
g.isReactWarning = !0, Object.defineProperty(o, "ref", {
|
|
885
827
|
get: g,
|
|
@@ -918,39 +860,39 @@ function vr() {
|
|
|
918
860
|
};
|
|
919
861
|
function Kt(o, u, g, _, T) {
|
|
920
862
|
{
|
|
921
|
-
var I, R = {}, A = null,
|
|
922
|
-
g !== void 0 && (
|
|
863
|
+
var I, R = {}, A = null, $ = null;
|
|
864
|
+
g !== void 0 && (Ze(g), A = "" + g), qt(u) && (Ze(u.key), A = "" + u.key), Gt(u) && ($ = u.ref, Vt(u, T));
|
|
923
865
|
for (I in u)
|
|
924
866
|
he.call(u, I) && !Wt.hasOwnProperty(I) && (R[I] = u[I]);
|
|
925
867
|
if (o && o.defaultProps) {
|
|
926
|
-
var
|
|
927
|
-
for (I in
|
|
928
|
-
R[I] === void 0 && (R[I] =
|
|
868
|
+
var O = o.defaultProps;
|
|
869
|
+
for (I in O)
|
|
870
|
+
R[I] === void 0 && (R[I] = O[I]);
|
|
929
871
|
}
|
|
930
|
-
if (A ||
|
|
872
|
+
if (A || $) {
|
|
931
873
|
var F = typeof o == "function" ? o.displayName || o.name || "Unknown" : o;
|
|
932
|
-
A && Ht(R, F),
|
|
874
|
+
A && Ht(R, F), $ && Jt(R, F);
|
|
933
875
|
}
|
|
934
|
-
return Yt(o, A,
|
|
876
|
+
return Yt(o, A, $, T, _, Qe.current, R);
|
|
935
877
|
}
|
|
936
878
|
}
|
|
937
|
-
var
|
|
879
|
+
var Le = j.ReactCurrentOwner, rt = j.ReactDebugCurrentFrame;
|
|
938
880
|
function ae(o) {
|
|
939
881
|
if (o) {
|
|
940
882
|
var u = o._owner, g = Ce(o.type, o._source, u ? u.type : null);
|
|
941
|
-
|
|
883
|
+
rt.setExtraStackFrame(g);
|
|
942
884
|
} else
|
|
943
|
-
|
|
885
|
+
rt.setExtraStackFrame(null);
|
|
944
886
|
}
|
|
945
|
-
var
|
|
946
|
-
|
|
947
|
-
function
|
|
887
|
+
var Oe;
|
|
888
|
+
Oe = !1;
|
|
889
|
+
function Fe(o) {
|
|
948
890
|
return typeof o == "object" && o !== null && o.$$typeof === r;
|
|
949
891
|
}
|
|
950
|
-
function
|
|
892
|
+
function nt() {
|
|
951
893
|
{
|
|
952
|
-
if (
|
|
953
|
-
var o = q(
|
|
894
|
+
if (Le.current) {
|
|
895
|
+
var o = q(Le.current.type);
|
|
954
896
|
if (o)
|
|
955
897
|
return `
|
|
956
898
|
|
|
@@ -962,10 +904,10 @@ Check the render method of \`` + o + "`.";
|
|
|
962
904
|
function Xt(o) {
|
|
963
905
|
return "";
|
|
964
906
|
}
|
|
965
|
-
var
|
|
907
|
+
var ot = {};
|
|
966
908
|
function Zt(o) {
|
|
967
909
|
{
|
|
968
|
-
var u =
|
|
910
|
+
var u = nt();
|
|
969
911
|
if (!u) {
|
|
970
912
|
var g = typeof o == "string" ? o : o.displayName || o.name;
|
|
971
913
|
g && (u = `
|
|
@@ -975,35 +917,35 @@ Check the top-level render call using <` + g + ">.");
|
|
|
975
917
|
return u;
|
|
976
918
|
}
|
|
977
919
|
}
|
|
978
|
-
function
|
|
920
|
+
function st(o, u) {
|
|
979
921
|
{
|
|
980
922
|
if (!o._store || o._store.validated || o.key != null)
|
|
981
923
|
return;
|
|
982
924
|
o._store.validated = !0;
|
|
983
925
|
var g = Zt(u);
|
|
984
|
-
if (
|
|
926
|
+
if (ot[g])
|
|
985
927
|
return;
|
|
986
|
-
|
|
928
|
+
ot[g] = !0;
|
|
987
929
|
var _ = "";
|
|
988
|
-
o && o._owner && o._owner !==
|
|
930
|
+
o && o._owner && o._owner !== Le.current && (_ = " It was passed a child from " + q(o._owner.type) + "."), ae(o), w('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', g, _), ae(null);
|
|
989
931
|
}
|
|
990
932
|
}
|
|
991
|
-
function
|
|
933
|
+
function at(o, u) {
|
|
992
934
|
{
|
|
993
935
|
if (typeof o != "object")
|
|
994
936
|
return;
|
|
995
|
-
if (
|
|
937
|
+
if (Me(o))
|
|
996
938
|
for (var g = 0; g < o.length; g++) {
|
|
997
939
|
var _ = o[g];
|
|
998
|
-
|
|
940
|
+
Fe(_) && st(_, u);
|
|
999
941
|
}
|
|
1000
|
-
else if (
|
|
942
|
+
else if (Fe(o))
|
|
1001
943
|
o._store && (o._store.validated = !0);
|
|
1002
944
|
else if (o) {
|
|
1003
945
|
var T = x(o);
|
|
1004
946
|
if (typeof T == "function" && T !== o.entries)
|
|
1005
947
|
for (var I = T.call(o), R; !(R = I.next()).done; )
|
|
1006
|
-
|
|
948
|
+
Fe(R.value) && st(R.value, u);
|
|
1007
949
|
}
|
|
1008
950
|
}
|
|
1009
951
|
}
|
|
@@ -1023,9 +965,9 @@ Check the top-level render call using <` + g + ">.");
|
|
|
1023
965
|
return;
|
|
1024
966
|
if (g) {
|
|
1025
967
|
var _ = q(u);
|
|
1026
|
-
|
|
1027
|
-
} else if (u.PropTypes !== void 0 && !
|
|
1028
|
-
|
|
968
|
+
$t(g, o.props, "prop", _, o);
|
|
969
|
+
} else if (u.PropTypes !== void 0 && !Oe) {
|
|
970
|
+
Oe = !0;
|
|
1029
971
|
var T = q(u);
|
|
1030
972
|
w("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", T || "Unknown");
|
|
1031
973
|
}
|
|
@@ -1044,17 +986,17 @@ Check the top-level render call using <` + g + ">.");
|
|
|
1044
986
|
o.ref !== null && (ae(o), w("Invalid attribute `ref` supplied to `React.Fragment`."), ae(null));
|
|
1045
987
|
}
|
|
1046
988
|
}
|
|
1047
|
-
var
|
|
1048
|
-
function
|
|
989
|
+
var it = {};
|
|
990
|
+
function lt(o, u, g, _, T, I) {
|
|
1049
991
|
{
|
|
1050
992
|
var R = pe(o);
|
|
1051
993
|
if (!R) {
|
|
1052
994
|
var A = "";
|
|
1053
995
|
(o === void 0 || typeof o == "object" && o !== null && Object.keys(o).length === 0) && (A += " You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");
|
|
1054
|
-
var
|
|
1055
|
-
|
|
1056
|
-
var
|
|
1057
|
-
o === null ?
|
|
996
|
+
var $ = Xt();
|
|
997
|
+
$ ? A += $ : A += nt();
|
|
998
|
+
var O;
|
|
999
|
+
o === null ? O = "null" : Me(o) ? O = "array" : o !== void 0 && o.$$typeof === r ? (O = "<" + (q(o.type) || "Unknown") + " />", A = " Did you accidentally export a JSX literal instead of a component?") : O = typeof o, w("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", O, A);
|
|
1058
1000
|
}
|
|
1059
1001
|
var F = Kt(o, u, g, T, I);
|
|
1060
1002
|
if (F == null)
|
|
@@ -1063,44 +1005,44 @@ Check the top-level render call using <` + g + ">.");
|
|
|
1063
1005
|
var G = u.children;
|
|
1064
1006
|
if (G !== void 0)
|
|
1065
1007
|
if (_)
|
|
1066
|
-
if (
|
|
1008
|
+
if (Me(G)) {
|
|
1067
1009
|
for (var ie = 0; ie < G.length; ie++)
|
|
1068
|
-
|
|
1010
|
+
at(G[ie], o);
|
|
1069
1011
|
Object.freeze && Object.freeze(G);
|
|
1070
1012
|
} else
|
|
1071
1013
|
w("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
|
|
1072
1014
|
else
|
|
1073
|
-
|
|
1015
|
+
at(G, o);
|
|
1074
1016
|
}
|
|
1075
1017
|
if (he.call(u, "key")) {
|
|
1076
1018
|
var te = q(o), B = Object.keys(u).filter(function(ar) {
|
|
1077
1019
|
return ar !== "key";
|
|
1078
1020
|
}), $e = B.length > 0 ? "{key: someKey, " + B.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
1079
|
-
if (!
|
|
1021
|
+
if (!it[te + $e]) {
|
|
1080
1022
|
var sr = B.length > 0 ? "{" + B.join(": ..., ") + ": ...}" : "{}";
|
|
1081
1023
|
w(`A props object containing a "key" prop is being spread into JSX:
|
|
1082
1024
|
let props = %s;
|
|
1083
1025
|
<%s {...props} />
|
|
1084
1026
|
React keys must be passed directly to JSX without using spread:
|
|
1085
1027
|
let props = %s;
|
|
1086
|
-
<%s key={someKey} {...props} />`, $e, te, sr, te),
|
|
1028
|
+
<%s key={someKey} {...props} />`, $e, te, sr, te), it[te + $e] = !0;
|
|
1087
1029
|
}
|
|
1088
1030
|
}
|
|
1089
1031
|
return o === s ? er(F) : Qt(F), F;
|
|
1090
1032
|
}
|
|
1091
1033
|
}
|
|
1092
1034
|
function tr(o, u, g) {
|
|
1093
|
-
return
|
|
1035
|
+
return lt(o, u, g, !0);
|
|
1094
1036
|
}
|
|
1095
1037
|
function rr(o, u, g) {
|
|
1096
|
-
return
|
|
1038
|
+
return lt(o, u, g, !1);
|
|
1097
1039
|
}
|
|
1098
1040
|
var nr = rr, or = tr;
|
|
1099
1041
|
be.Fragment = s, be.jsx = nr, be.jsxs = or;
|
|
1100
1042
|
}()), be;
|
|
1101
1043
|
}
|
|
1102
|
-
process.env.NODE_ENV === "production" ?
|
|
1103
|
-
var t =
|
|
1044
|
+
process.env.NODE_ENV === "production" ? Be.exports = hr() : Be.exports = xr();
|
|
1045
|
+
var t = Be.exports;
|
|
1104
1046
|
const pt = {
|
|
1105
1047
|
apiBaseUrl: "/api/v1",
|
|
1106
1048
|
defaultFormats: ["action_card", "suffix"],
|
|
@@ -1109,8 +1051,8 @@ const pt = {
|
|
|
1109
1051
|
debug: !1,
|
|
1110
1052
|
timeout: 5e3,
|
|
1111
1053
|
maxRetries: 2
|
|
1112
|
-
}, kt =
|
|
1113
|
-
function
|
|
1054
|
+
}, kt = ir(void 0);
|
|
1055
|
+
function Sn({ config: e, initialConfig: r, children: n }) {
|
|
1114
1056
|
const [s, l] = E(() => {
|
|
1115
1057
|
const d = {
|
|
1116
1058
|
...pt,
|
|
@@ -1118,12 +1060,12 @@ function Rn({ config: e, initialConfig: r, children: n }) {
|
|
|
1118
1060
|
...e
|
|
1119
1061
|
};
|
|
1120
1062
|
return typeof window < "u" && (window.__AD_CONFIG__ = d), d;
|
|
1121
|
-
}), a =
|
|
1063
|
+
}), a = z((d) => {
|
|
1122
1064
|
l((m) => {
|
|
1123
1065
|
const p = { ...m, ...d };
|
|
1124
1066
|
return typeof window < "u" && (window.__AD_CONFIG__ = p), (s.debug || d.debug) && console.log("[AdProvider] Config updated:", d), p;
|
|
1125
1067
|
});
|
|
1126
|
-
}, [s.debug]), c =
|
|
1068
|
+
}, [s.debug]), c = z(() => {
|
|
1127
1069
|
const d = { ...pt };
|
|
1128
1070
|
l(d), typeof window < "u" && (window.__AD_CONFIG__ = d), console.log("[AdProvider] Config reset to defaults");
|
|
1129
1071
|
}, []), i = {
|
|
@@ -1131,19 +1073,27 @@ function Rn({ config: e, initialConfig: r, children: n }) {
|
|
|
1131
1073
|
updateConfig: a,
|
|
1132
1074
|
resetConfig: c
|
|
1133
1075
|
};
|
|
1134
|
-
return
|
|
1076
|
+
return t.jsx(kt.Provider, { value: i, children: n });
|
|
1135
1077
|
}
|
|
1136
|
-
function
|
|
1137
|
-
const e =
|
|
1078
|
+
function An() {
|
|
1079
|
+
const e = lr(kt);
|
|
1138
1080
|
if (e === void 0)
|
|
1139
1081
|
throw new Error("useAdConfig must be used within an AdProvider");
|
|
1140
1082
|
return e;
|
|
1141
1083
|
}
|
|
1142
|
-
class
|
|
1084
|
+
class br {
|
|
1143
1085
|
constructor(r = !1) {
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1086
|
+
Object.defineProperty(this, "debug", {
|
|
1087
|
+
enumerable: !0,
|
|
1088
|
+
configurable: !0,
|
|
1089
|
+
writable: !0,
|
|
1090
|
+
value: void 0
|
|
1091
|
+
}), Object.defineProperty(this, "prefix", {
|
|
1092
|
+
enumerable: !0,
|
|
1093
|
+
configurable: !0,
|
|
1094
|
+
writable: !0,
|
|
1095
|
+
value: "[AdSDK]"
|
|
1096
|
+
}), this.debug = r;
|
|
1147
1097
|
}
|
|
1148
1098
|
enable() {
|
|
1149
1099
|
this.debug = !0, this.log("Debug logging enabled");
|
|
@@ -1164,8 +1114,8 @@ class wr {
|
|
|
1164
1114
|
this.debug && console.info(this.prefix, ...r);
|
|
1165
1115
|
}
|
|
1166
1116
|
}
|
|
1167
|
-
function
|
|
1168
|
-
return new
|
|
1117
|
+
function En(e) {
|
|
1118
|
+
return new br(e.debug);
|
|
1169
1119
|
}
|
|
1170
1120
|
function _t(e) {
|
|
1171
1121
|
var r, n, s = "";
|
|
@@ -1176,19 +1126,19 @@ function _t(e) {
|
|
|
1176
1126
|
} else for (n in e) e[n] && (s && (s += " "), s += n);
|
|
1177
1127
|
return s;
|
|
1178
1128
|
}
|
|
1179
|
-
function
|
|
1129
|
+
function yr() {
|
|
1180
1130
|
for (var e, r, n = 0, s = "", l = arguments.length; n < l; n++) (e = arguments[n]) && (r = _t(e)) && (s && (s += " "), s += r);
|
|
1181
1131
|
return s;
|
|
1182
1132
|
}
|
|
1183
|
-
const
|
|
1184
|
-
const r =
|
|
1133
|
+
const qe = "-", vr = (e) => {
|
|
1134
|
+
const r = jr(e), {
|
|
1185
1135
|
conflictingClassGroups: n,
|
|
1186
1136
|
conflictingClassGroupModifiers: s
|
|
1187
1137
|
} = e;
|
|
1188
1138
|
return {
|
|
1189
1139
|
getClassGroupId: (c) => {
|
|
1190
|
-
const i = c.split(
|
|
1191
|
-
return i[0] === "" && i.length !== 1 && i.shift(), Nt(i, r) ||
|
|
1140
|
+
const i = c.split(qe);
|
|
1141
|
+
return i[0] === "" && i.length !== 1 && i.shift(), Nt(i, r) || wr(c);
|
|
1192
1142
|
},
|
|
1193
1143
|
getConflictingClassGroupIds: (c, i) => {
|
|
1194
1144
|
const d = n[c] || [];
|
|
@@ -1204,17 +1154,17 @@ const Ve = "-", kr = (e) => {
|
|
|
1204
1154
|
return l;
|
|
1205
1155
|
if (r.validators.length === 0)
|
|
1206
1156
|
return;
|
|
1207
|
-
const a = e.join(
|
|
1157
|
+
const a = e.join(qe);
|
|
1208
1158
|
return (c = r.validators.find(({
|
|
1209
1159
|
validator: i
|
|
1210
1160
|
}) => i(a))) == null ? void 0 : c.classGroupId;
|
|
1211
|
-
}, mt = /^\[(.+)\]$/,
|
|
1161
|
+
}, mt = /^\[(.+)\]$/, wr = (e) => {
|
|
1212
1162
|
if (mt.test(e)) {
|
|
1213
1163
|
const r = mt.exec(e)[1], n = r == null ? void 0 : r.substring(0, r.indexOf(":"));
|
|
1214
1164
|
if (n)
|
|
1215
1165
|
return "arbitrary.." + n;
|
|
1216
1166
|
}
|
|
1217
|
-
},
|
|
1167
|
+
}, jr = (e) => {
|
|
1218
1168
|
const {
|
|
1219
1169
|
theme: r,
|
|
1220
1170
|
prefix: n
|
|
@@ -1222,10 +1172,10 @@ const Ve = "-", kr = (e) => {
|
|
|
1222
1172
|
nextPart: /* @__PURE__ */ new Map(),
|
|
1223
1173
|
validators: []
|
|
1224
1174
|
};
|
|
1225
|
-
return
|
|
1226
|
-
|
|
1175
|
+
return _r(Object.entries(e.classGroups), n).forEach(([a, c]) => {
|
|
1176
|
+
Ue(c, s, a, r);
|
|
1227
1177
|
}), s;
|
|
1228
|
-
},
|
|
1178
|
+
}, Ue = (e, r, n, s) => {
|
|
1229
1179
|
e.forEach((l) => {
|
|
1230
1180
|
if (typeof l == "string") {
|
|
1231
1181
|
const a = l === "" ? r : ft(r, l);
|
|
@@ -1233,8 +1183,8 @@ const Ve = "-", kr = (e) => {
|
|
|
1233
1183
|
return;
|
|
1234
1184
|
}
|
|
1235
1185
|
if (typeof l == "function") {
|
|
1236
|
-
if (
|
|
1237
|
-
|
|
1186
|
+
if (kr(l)) {
|
|
1187
|
+
Ue(l(s), r, n, s);
|
|
1238
1188
|
return;
|
|
1239
1189
|
}
|
|
1240
1190
|
r.validators.push({
|
|
@@ -1244,21 +1194,21 @@ const Ve = "-", kr = (e) => {
|
|
|
1244
1194
|
return;
|
|
1245
1195
|
}
|
|
1246
1196
|
Object.entries(l).forEach(([a, c]) => {
|
|
1247
|
-
|
|
1197
|
+
Ue(c, ft(r, a), n, s);
|
|
1248
1198
|
});
|
|
1249
1199
|
});
|
|
1250
1200
|
}, ft = (e, r) => {
|
|
1251
1201
|
let n = e;
|
|
1252
|
-
return r.split(
|
|
1202
|
+
return r.split(qe).forEach((s) => {
|
|
1253
1203
|
n.nextPart.has(s) || n.nextPart.set(s, {
|
|
1254
1204
|
nextPart: /* @__PURE__ */ new Map(),
|
|
1255
1205
|
validators: []
|
|
1256
1206
|
}), n = n.nextPart.get(s);
|
|
1257
1207
|
}), n;
|
|
1258
|
-
},
|
|
1208
|
+
}, kr = (e) => e.isThemeGetter, _r = (e, r) => r ? e.map(([n, s]) => {
|
|
1259
1209
|
const l = s.map((a) => typeof a == "string" ? r + a : typeof a == "object" ? Object.fromEntries(Object.entries(a).map(([c, i]) => [r + c, i])) : a);
|
|
1260
1210
|
return [n, l];
|
|
1261
|
-
}) : e,
|
|
1211
|
+
}) : e, Nr = (e) => {
|
|
1262
1212
|
if (e < 1)
|
|
1263
1213
|
return {
|
|
1264
1214
|
get: () => {
|
|
@@ -1282,7 +1232,7 @@ const Ve = "-", kr = (e) => {
|
|
|
1282
1232
|
n.has(a) ? n.set(a, c) : l(a, c);
|
|
1283
1233
|
}
|
|
1284
1234
|
};
|
|
1285
|
-
}, Ct = "!",
|
|
1235
|
+
}, Ct = "!", Cr = (e) => {
|
|
1286
1236
|
const {
|
|
1287
1237
|
separator: r,
|
|
1288
1238
|
experimentalParseClassName: n
|
|
@@ -1315,7 +1265,7 @@ const Ve = "-", kr = (e) => {
|
|
|
1315
1265
|
className: i,
|
|
1316
1266
|
parseClassName: c
|
|
1317
1267
|
}) : c;
|
|
1318
|
-
},
|
|
1268
|
+
}, Sr = (e) => {
|
|
1319
1269
|
if (e.length <= 1)
|
|
1320
1270
|
return e;
|
|
1321
1271
|
const r = [];
|
|
@@ -1323,16 +1273,16 @@ const Ve = "-", kr = (e) => {
|
|
|
1323
1273
|
return e.forEach((s) => {
|
|
1324
1274
|
s[0] === "[" ? (r.push(...n.sort(), s), n = []) : n.push(s);
|
|
1325
1275
|
}), r.push(...n.sort()), r;
|
|
1326
|
-
},
|
|
1327
|
-
cache:
|
|
1328
|
-
parseClassName:
|
|
1329
|
-
...
|
|
1330
|
-
}),
|
|
1276
|
+
}, Ar = (e) => ({
|
|
1277
|
+
cache: Nr(e.cacheSize),
|
|
1278
|
+
parseClassName: Cr(e),
|
|
1279
|
+
...vr(e)
|
|
1280
|
+
}), Er = /\s+/, Rr = (e, r) => {
|
|
1331
1281
|
const {
|
|
1332
1282
|
parseClassName: n,
|
|
1333
1283
|
getClassGroupId: s,
|
|
1334
1284
|
getConflictingClassGroupIds: l
|
|
1335
|
-
} = r, a = [], c = e.trim().split(
|
|
1285
|
+
} = r, a = [], c = e.trim().split(Er);
|
|
1336
1286
|
let i = "";
|
|
1337
1287
|
for (let d = c.length - 1; d >= 0; d -= 1) {
|
|
1338
1288
|
const m = c[d], {
|
|
@@ -1353,20 +1303,20 @@ const Ve = "-", kr = (e) => {
|
|
|
1353
1303
|
}
|
|
1354
1304
|
v = !1;
|
|
1355
1305
|
}
|
|
1356
|
-
const x =
|
|
1306
|
+
const x = Sr(p).join(":"), j = f ? x + Ct : x, w = j + b;
|
|
1357
1307
|
if (a.includes(w))
|
|
1358
1308
|
continue;
|
|
1359
1309
|
a.push(w);
|
|
1360
1310
|
const k = l(b, v);
|
|
1361
1311
|
for (let S = 0; S < k.length; ++S) {
|
|
1362
|
-
const
|
|
1363
|
-
a.push(j +
|
|
1312
|
+
const D = k[S];
|
|
1313
|
+
a.push(j + D);
|
|
1364
1314
|
}
|
|
1365
1315
|
i = m + (i.length > 0 ? " " + i : i);
|
|
1366
1316
|
}
|
|
1367
1317
|
return i;
|
|
1368
1318
|
};
|
|
1369
|
-
function
|
|
1319
|
+
function Tr() {
|
|
1370
1320
|
let e = 0, r, n, s = "";
|
|
1371
1321
|
for (; e < arguments.length; )
|
|
1372
1322
|
(r = arguments[e++]) && (n = St(r)) && (s && (s += " "), s += n);
|
|
@@ -1380,36 +1330,36 @@ const St = (e) => {
|
|
|
1380
1330
|
e[s] && (r = St(e[s])) && (n && (n += " "), n += r);
|
|
1381
1331
|
return n;
|
|
1382
1332
|
};
|
|
1383
|
-
function
|
|
1333
|
+
function Pr(e, ...r) {
|
|
1384
1334
|
let n, s, l, a = c;
|
|
1385
1335
|
function c(d) {
|
|
1386
1336
|
const m = r.reduce((p, f) => f(p), e());
|
|
1387
|
-
return n =
|
|
1337
|
+
return n = Ar(m), s = n.cache.get, l = n.cache.set, a = i, i(d);
|
|
1388
1338
|
}
|
|
1389
1339
|
function i(d) {
|
|
1390
1340
|
const m = s(d);
|
|
1391
1341
|
if (m)
|
|
1392
1342
|
return m;
|
|
1393
|
-
const p =
|
|
1343
|
+
const p = Rr(d, n);
|
|
1394
1344
|
return l(d, p), p;
|
|
1395
1345
|
}
|
|
1396
1346
|
return function() {
|
|
1397
|
-
return a(
|
|
1347
|
+
return a(Tr.apply(null, arguments));
|
|
1398
1348
|
};
|
|
1399
1349
|
}
|
|
1400
|
-
const
|
|
1350
|
+
const M = (e) => {
|
|
1401
1351
|
const r = (n) => n[e] || [];
|
|
1402
1352
|
return r.isThemeGetter = !0, r;
|
|
1403
|
-
}, At = /^\[(?:([a-z-]+):)?(.+)\]$/i,
|
|
1353
|
+
}, At = /^\[(?:([a-z-]+):)?(.+)\]$/i, Ir = /^\d+\/\d+$/, Dr = /* @__PURE__ */ new Set(["px", "full", "screen"]), Mr = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Lr = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, Or = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, Fr = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, $r = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, J = (e) => le(e) || Dr.has(e) || Ir.test(e), X = (e) => ue(e, "length", Hr), le = (e) => !!e && !Number.isNaN(Number(e)), ze = (e) => ue(e, "number", le), ye = (e) => !!e && Number.isInteger(Number(e)), zr = (e) => e.endsWith("%") && le(e.slice(0, -1)), C = (e) => At.test(e), Z = (e) => Mr.test(e), Br = /* @__PURE__ */ new Set(["length", "size", "percentage"]), Ur = (e) => ue(e, Br, Et), Wr = (e) => ue(e, "position", Et), Gr = /* @__PURE__ */ new Set(["image", "url"]), qr = (e) => ue(e, Gr, Yr), Vr = (e) => ue(e, "", Jr), ve = () => !0, ue = (e, r, n) => {
|
|
1404
1354
|
const s = At.exec(e);
|
|
1405
1355
|
return s ? s[1] ? typeof r == "string" ? s[1] === r : r.has(s[1]) : n(s[2]) : !1;
|
|
1406
|
-
},
|
|
1356
|
+
}, Hr = (e) => (
|
|
1407
1357
|
// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
|
|
1408
1358
|
// For example, `hsl(0 0% 0%)` would be classified as a length without this check.
|
|
1409
1359
|
// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
|
|
1410
|
-
|
|
1411
|
-
), Et = () => !1,
|
|
1412
|
-
const e =
|
|
1360
|
+
Lr.test(e) && !Or.test(e)
|
|
1361
|
+
), Et = () => !1, Jr = (e) => Fr.test(e), Yr = (e) => $r.test(e), Kr = () => {
|
|
1362
|
+
const e = M("colors"), r = M("spacing"), n = M("blur"), s = M("brightness"), l = M("borderColor"), a = M("borderRadius"), c = M("borderSpacing"), i = M("borderWidth"), d = M("contrast"), m = M("grayscale"), p = M("hueRotate"), f = M("invert"), y = M("gap"), N = M("gradientColorStops"), v = M("gradientColorStopPositions"), b = M("inset"), x = M("margin"), j = M("opacity"), w = M("padding"), k = M("saturate"), S = M("scale"), D = M("sepia"), L = M("skew"), re = M("space"), ne = M("translate"), oe = () => ["auto", "contain", "none"], pe = () => ["auto", "hidden", "clip", "visible", "scroll"], me = () => ["auto", C, r], P = () => [C, r], q = () => ["", J, X], U = () => ["auto", le, C], Y = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], ee = () => ["solid", "dashed", "dotted", "double", "none"], fe = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], se = () => ["start", "end", "center", "between", "around", "evenly", "stretch"], K = () => ["", "0", C], ge = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], W = () => [le, C];
|
|
1413
1363
|
return {
|
|
1414
1364
|
cacheSize: 500,
|
|
1415
1365
|
separator: ":",
|
|
@@ -1428,7 +1378,7 @@ const L = (e) => {
|
|
|
1428
1378
|
invert: K(),
|
|
1429
1379
|
gap: P(),
|
|
1430
1380
|
gradientColorStops: [e],
|
|
1431
|
-
gradientColorStopPositions: [
|
|
1381
|
+
gradientColorStopPositions: [zr, X],
|
|
1432
1382
|
inset: me(),
|
|
1433
1383
|
margin: me(),
|
|
1434
1384
|
opacity: W(),
|
|
@@ -2097,7 +2047,7 @@ const L = (e) => {
|
|
|
2097
2047
|
* @see https://tailwindcss.com/docs/font-weight
|
|
2098
2048
|
*/
|
|
2099
2049
|
"font-weight": [{
|
|
2100
|
-
font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black",
|
|
2050
|
+
font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", ze]
|
|
2101
2051
|
}],
|
|
2102
2052
|
/**
|
|
2103
2053
|
* Font Family
|
|
@@ -2148,7 +2098,7 @@ const L = (e) => {
|
|
|
2148
2098
|
* @see https://tailwindcss.com/docs/line-clamp
|
|
2149
2099
|
*/
|
|
2150
2100
|
"line-clamp": [{
|
|
2151
|
-
"line-clamp": ["none", le,
|
|
2101
|
+
"line-clamp": ["none", le, ze]
|
|
2152
2102
|
}],
|
|
2153
2103
|
/**
|
|
2154
2104
|
* Line Height
|
|
@@ -2341,7 +2291,7 @@ const L = (e) => {
|
|
|
2341
2291
|
* @see https://tailwindcss.com/docs/background-position
|
|
2342
2292
|
*/
|
|
2343
2293
|
"bg-position": [{
|
|
2344
|
-
bg: [...Y(),
|
|
2294
|
+
bg: [...Y(), Wr]
|
|
2345
2295
|
}],
|
|
2346
2296
|
/**
|
|
2347
2297
|
* Background Repeat
|
|
@@ -2357,7 +2307,7 @@ const L = (e) => {
|
|
|
2357
2307
|
* @see https://tailwindcss.com/docs/background-size
|
|
2358
2308
|
*/
|
|
2359
2309
|
"bg-size": [{
|
|
2360
|
-
bg: ["auto", "cover", "contain",
|
|
2310
|
+
bg: ["auto", "cover", "contain", Ur]
|
|
2361
2311
|
}],
|
|
2362
2312
|
/**
|
|
2363
2313
|
* Background Image
|
|
@@ -2366,7 +2316,7 @@ const L = (e) => {
|
|
|
2366
2316
|
"bg-image": [{
|
|
2367
2317
|
bg: ["none", {
|
|
2368
2318
|
"gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
|
|
2369
|
-
},
|
|
2319
|
+
}, qr]
|
|
2370
2320
|
}],
|
|
2371
2321
|
/**
|
|
2372
2322
|
* Background Color
|
|
@@ -2782,7 +2732,7 @@ const L = (e) => {
|
|
|
2782
2732
|
* @see https://tailwindcss.com/docs/box-shadow
|
|
2783
2733
|
*/
|
|
2784
2734
|
shadow: [{
|
|
2785
|
-
shadow: ["", "inner", "none", Z,
|
|
2735
|
+
shadow: ["", "inner", "none", Z, Vr]
|
|
2786
2736
|
}],
|
|
2787
2737
|
/**
|
|
2788
2738
|
* Box Shadow Color
|
|
@@ -2882,7 +2832,7 @@ const L = (e) => {
|
|
|
2882
2832
|
* @see https://tailwindcss.com/docs/sepia
|
|
2883
2833
|
*/
|
|
2884
2834
|
sepia: [{
|
|
2885
|
-
sepia: [
|
|
2835
|
+
sepia: [D]
|
|
2886
2836
|
}],
|
|
2887
2837
|
/**
|
|
2888
2838
|
* Backdrop Filter
|
|
@@ -2953,7 +2903,7 @@ const L = (e) => {
|
|
|
2953
2903
|
* @see https://tailwindcss.com/docs/backdrop-sepia
|
|
2954
2904
|
*/
|
|
2955
2905
|
"backdrop-sepia": [{
|
|
2956
|
-
"backdrop-sepia": [
|
|
2906
|
+
"backdrop-sepia": [D]
|
|
2957
2907
|
}],
|
|
2958
2908
|
// Tables
|
|
2959
2909
|
/**
|
|
@@ -3089,14 +3039,14 @@ const L = (e) => {
|
|
|
3089
3039
|
* @see https://tailwindcss.com/docs/skew
|
|
3090
3040
|
*/
|
|
3091
3041
|
"skew-x": [{
|
|
3092
|
-
"skew-x": [
|
|
3042
|
+
"skew-x": [L]
|
|
3093
3043
|
}],
|
|
3094
3044
|
/**
|
|
3095
3045
|
* Skew Y
|
|
3096
3046
|
* @see https://tailwindcss.com/docs/skew
|
|
3097
3047
|
*/
|
|
3098
3048
|
"skew-y": [{
|
|
3099
|
-
"skew-y": [
|
|
3049
|
+
"skew-y": [L]
|
|
3100
3050
|
}],
|
|
3101
3051
|
/**
|
|
3102
3052
|
* Transform Origin
|
|
@@ -3362,7 +3312,7 @@ const L = (e) => {
|
|
|
3362
3312
|
* @see https://tailwindcss.com/docs/stroke-width
|
|
3363
3313
|
*/
|
|
3364
3314
|
"stroke-w": [{
|
|
3365
|
-
stroke: [J, X,
|
|
3315
|
+
stroke: [J, X, ze]
|
|
3366
3316
|
}],
|
|
3367
3317
|
/**
|
|
3368
3318
|
* Stroke
|
|
@@ -3437,174 +3387,78 @@ const L = (e) => {
|
|
|
3437
3387
|
"font-size": ["leading"]
|
|
3438
3388
|
}
|
|
3439
3389
|
};
|
|
3440
|
-
},
|
|
3390
|
+
}, Xr = /* @__PURE__ */ Pr(Kr);
|
|
3441
3391
|
function h(...e) {
|
|
3442
|
-
return
|
|
3392
|
+
return Xr(yr(e));
|
|
3443
3393
|
}
|
|
3444
3394
|
function gt({ rating: e }) {
|
|
3445
|
-
return e ?
|
|
3395
|
+
return e ? t.jsx("span", { className: "text-xs font-medium text-ad-text-secondary", children: e }) : null;
|
|
3446
3396
|
}
|
|
3447
|
-
function
|
|
3397
|
+
function Zr({ variant: e }) {
|
|
3448
3398
|
const r = "bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 bg-[length:200%_100%] animate-shimmer";
|
|
3449
|
-
return e === "compact" ?
|
|
3450
|
-
/* @__PURE__ */ t.jsx("div", { className: h("aspect-[4/3] rounded-lg mb-2", r) }),
|
|
3451
|
-
/* @__PURE__ */ t.jsx("div", { className: h("h-3 rounded-md w-full mb-1.5", r) }),
|
|
3452
|
-
/* @__PURE__ */ t.jsx("div", { className: h("h-2.5 rounded-md w-2/3", r) })
|
|
3453
|
-
] }) : /* @__PURE__ */ t.jsxs("div", { className: "rounded-xl p-3 w-full flex gap-3 bg-white/60 backdrop-blur-sm border border-ad-border/50", children: [
|
|
3454
|
-
/* @__PURE__ */ t.jsx("div", { className: h("w-16 h-16 rounded-lg flex-shrink-0", r) }),
|
|
3455
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 space-y-1.5", children: [
|
|
3456
|
-
/* @__PURE__ */ t.jsx("div", { className: h("h-3 rounded-md w-full", r) }),
|
|
3457
|
-
/* @__PURE__ */ t.jsx("div", { className: h("h-2.5 rounded-md w-2/3", r) })
|
|
3458
|
-
] })
|
|
3459
|
-
] });
|
|
3399
|
+
return e === "compact" ? t.jsx("div", { className: "rounded-lg p-2 w-full h-12 bg-white/60 backdrop-blur-sm border border-ad-border/50", children: t.jsx("div", { className: h("rounded-md h-full w-full", r) }) }) : e === "vertical" ? t.jsxs("div", { className: "rounded-xl p-3 w-64 bg-white/60 backdrop-blur-sm border border-ad-border/50", children: [t.jsx("div", { className: h("aspect-[4/3] rounded-lg mb-2", r) }), t.jsx("div", { className: h("h-3 rounded-md w-full mb-1.5", r) }), t.jsx("div", { className: h("h-2.5 rounded-md w-2/3", r) })] }) : t.jsxs("div", { className: "rounded-xl p-3 w-full flex gap-3 bg-white/60 backdrop-blur-sm border border-ad-border/50", children: [t.jsx("div", { className: h("w-16 h-16 rounded-lg flex-shrink-0", r) }), t.jsxs("div", { className: "flex-1 space-y-1.5", children: [t.jsx("div", { className: h("h-3 rounded-md w-full", r) }), t.jsx("div", { className: h("h-2.5 rounded-md w-2/3", r) })] })] });
|
|
3460
3400
|
}
|
|
3461
|
-
function
|
|
3462
|
-
ad: e,
|
|
3463
|
-
variant: r = "horizontal",
|
|
3464
|
-
className: n,
|
|
3465
|
-
isLoading: s = !1,
|
|
3466
|
-
onClick: l,
|
|
3467
|
-
onImpression: a
|
|
3468
|
-
}) {
|
|
3401
|
+
function Rn({ ad: e, variant: r = "horizontal", className: n, isLoading: s = !1, onClick: l, onImpression: a }) {
|
|
3469
3402
|
const { impressionRef: c, handleClick: i } = Q(e, {
|
|
3470
3403
|
onClick: l,
|
|
3471
3404
|
onImpression: a
|
|
3472
3405
|
});
|
|
3473
3406
|
if (s)
|
|
3474
|
-
return
|
|
3475
|
-
if (!e)
|
|
3407
|
+
return t.jsx(Zr, { variant: r });
|
|
3408
|
+
if (!e)
|
|
3409
|
+
return null;
|
|
3476
3410
|
const d = "ad-component relative overflow-hidden rounded-xl bg-white/80 backdrop-blur-sm border border-ad-border/60 shadow-sm hover:shadow-md transition-all duration-200 hover:border-ad-primary/30 animate-fade-in";
|
|
3477
|
-
return r === "compact" ?
|
|
3478
|
-
"div",
|
|
3479
|
-
{
|
|
3480
|
-
ref: c,
|
|
3481
|
-
onClick: i,
|
|
3482
|
-
className: h(d, "p-2 cursor-pointer group", n),
|
|
3483
|
-
children: /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3484
|
-
e.content.image && /* @__PURE__ */ t.jsx("div", { className: "relative w-10 h-10 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: /* @__PURE__ */ t.jsx(
|
|
3485
|
-
"img",
|
|
3486
|
-
{
|
|
3487
|
-
src: e.content.image,
|
|
3488
|
-
alt: e.content.title,
|
|
3489
|
-
className: "w-full h-full object-cover",
|
|
3490
|
-
loading: "lazy"
|
|
3491
|
-
}
|
|
3492
|
-
) }),
|
|
3493
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3494
|
-
/* @__PURE__ */ t.jsx("p", { className: "text-xs font-semibold text-ad-text-primary truncate group-hover:text-ad-primary transition-colors leading-tight", children: e.content.title }),
|
|
3495
|
-
e.content.price && /* @__PURE__ */ t.jsx("p", { className: "text-xs font-bold text-ad-primary mt-0.5", children: e.content.price })
|
|
3496
|
-
] }),
|
|
3497
|
-
e.content.cta_text && /* @__PURE__ */ t.jsx("button", { className: "text-[10px] font-semibold text-ad-primary bg-ad-primary/10 px-2 py-1 rounded whitespace-nowrap group-hover:bg-ad-primary group-hover:text-white transition-all", children: e.content.cta_text })
|
|
3498
|
-
] })
|
|
3499
|
-
}
|
|
3500
|
-
) : r === "vertical" ? /* @__PURE__ */ t.jsxs(
|
|
3501
|
-
"div",
|
|
3502
|
-
{
|
|
3503
|
-
ref: c,
|
|
3504
|
-
onClick: i,
|
|
3505
|
-
className: h(d, "p-3 cursor-pointer w-64 group", n),
|
|
3506
|
-
children: [
|
|
3507
|
-
e.content.image && /* @__PURE__ */ t.jsx("div", { className: "relative -mx-3 -mt-3 mb-2 rounded-t-lg overflow-hidden aspect-[4/3]", children: /* @__PURE__ */ t.jsx(
|
|
3508
|
-
"img",
|
|
3509
|
-
{
|
|
3510
|
-
src: e.content.image,
|
|
3511
|
-
alt: e.content.title,
|
|
3512
|
-
className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
|
|
3513
|
-
loading: "lazy"
|
|
3514
|
-
}
|
|
3515
|
-
) }),
|
|
3516
|
-
/* @__PURE__ */ t.jsxs("div", { className: "space-y-1.5", children: [
|
|
3517
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-semibold text-ad-text-primary line-clamp-2 text-sm leading-tight group-hover:text-ad-primary transition-colors", children: e.content.title }),
|
|
3518
|
-
e.content.brand && /* @__PURE__ */ t.jsx("p", { className: "text-[10px] font-medium text-ad-text-secondary uppercase tracking-wide", children: e.content.brand }),
|
|
3519
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3520
|
-
e.content.rating && /* @__PURE__ */ t.jsx(gt, { rating: e.content.rating }),
|
|
3521
|
-
e.content.price && /* @__PURE__ */ t.jsx("span", { className: "text-sm font-bold text-ad-primary", children: e.content.price })
|
|
3522
|
-
] }),
|
|
3523
|
-
e.content.cta_text && /* @__PURE__ */ t.jsx("button", { className: "w-full py-1.5 px-3 bg-ad-primary text-white rounded-lg text-xs font-semibold hover:bg-ad-primaryLight transition-all duration-200 active:scale-[0.98]", children: e.content.cta_text })
|
|
3524
|
-
] }),
|
|
3525
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge mt-2 block text-center text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm inline-flex mx-auto", children: "Sponsored" })
|
|
3526
|
-
]
|
|
3527
|
-
}
|
|
3528
|
-
) : /* @__PURE__ */ t.jsx(
|
|
3529
|
-
"div",
|
|
3530
|
-
{
|
|
3531
|
-
ref: c,
|
|
3532
|
-
onClick: i,
|
|
3533
|
-
className: h(d, "p-3 cursor-pointer group", n),
|
|
3534
|
-
children: /* @__PURE__ */ t.jsxs("div", { className: "flex gap-3", children: [
|
|
3535
|
-
e.content.image && /* @__PURE__ */ t.jsx("div", { className: "relative w-16 h-16 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: /* @__PURE__ */ t.jsx(
|
|
3536
|
-
"img",
|
|
3537
|
-
{
|
|
3538
|
-
src: e.content.image,
|
|
3539
|
-
alt: e.content.title,
|
|
3540
|
-
className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
|
|
3541
|
-
loading: "lazy"
|
|
3542
|
-
}
|
|
3543
|
-
) }),
|
|
3544
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 min-w-0 flex flex-col justify-between", children: [
|
|
3545
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-start justify-between gap-2", children: [
|
|
3546
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-semibold text-ad-text-primary line-clamp-2 text-sm leading-tight group-hover:text-ad-primary transition-colors flex-1", children: e.content.title }),
|
|
3547
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge flex-shrink-0 text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm", children: "Ad" })
|
|
3548
|
-
] }),
|
|
3549
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
3550
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
3551
|
-
e.content.rating && /* @__PURE__ */ t.jsx(gt, { rating: e.content.rating }),
|
|
3552
|
-
e.content.brand && /* @__PURE__ */ t.jsx("span", { className: "text-[10px] font-medium text-ad-text-secondary uppercase tracking-wide", children: e.content.brand })
|
|
3553
|
-
] }),
|
|
3554
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3555
|
-
e.content.price && /* @__PURE__ */ t.jsx("span", { className: "text-sm font-bold text-ad-primary", children: e.content.price }),
|
|
3556
|
-
e.content.cta_text && /* @__PURE__ */ t.jsx("button", { className: "py-1 px-2.5 bg-ad-primary text-white rounded-md text-[10px] font-semibold hover:bg-ad-primaryLight transition-all duration-200 active:scale-[0.98] whitespace-nowrap", children: e.content.cta_text })
|
|
3557
|
-
] })
|
|
3558
|
-
] })
|
|
3559
|
-
] })
|
|
3560
|
-
] })
|
|
3561
|
-
}
|
|
3562
|
-
);
|
|
3411
|
+
return r === "compact" ? t.jsx("div", { ref: c, onClick: i, className: h(d, "p-2 cursor-pointer group", n), children: t.jsxs("div", { className: "flex items-center gap-2", children: [e.content.image && t.jsx("div", { className: "relative w-10 h-10 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover", loading: "lazy" }) }), t.jsxs("div", { className: "flex-1 min-w-0", children: [t.jsx("p", { className: "text-xs font-semibold text-ad-text-primary truncate group-hover:text-ad-primary transition-colors leading-tight", children: e.content.title }), e.content.price && t.jsx("p", { className: "text-xs font-bold text-ad-primary mt-0.5", children: e.content.price })] }), e.content.cta_text && t.jsx("button", { className: "text-[10px] font-semibold text-ad-primary bg-ad-primary/10 px-2 py-1 rounded whitespace-nowrap group-hover:bg-ad-primary group-hover:text-white transition-all", children: e.content.cta_text })] }) }) : r === "vertical" ? t.jsxs("div", { ref: c, onClick: i, className: h(d, "p-3 cursor-pointer w-64 group", n), children: [e.content.image && t.jsx("div", { className: "relative -mx-3 -mt-3 mb-2 rounded-t-lg overflow-hidden aspect-[4/3]", children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300", loading: "lazy" }) }), t.jsxs("div", { className: "space-y-1.5", children: [t.jsx("h4", { className: "font-semibold text-ad-text-primary line-clamp-2 text-sm leading-tight group-hover:text-ad-primary transition-colors", children: e.content.title }), e.content.brand && t.jsx("p", { className: "text-[10px] font-medium text-ad-text-secondary uppercase tracking-wide", children: e.content.brand }), t.jsxs("div", { className: "flex items-center gap-2", children: [e.content.rating && t.jsx(gt, { rating: e.content.rating }), e.content.price && t.jsx("span", { className: "text-sm font-bold text-ad-primary", children: e.content.price })] }), e.content.cta_text && t.jsx("button", { className: "w-full py-1.5 px-3 bg-ad-primary text-white rounded-lg text-xs font-semibold hover:bg-ad-primaryLight transition-all duration-200 active:scale-[0.98]", children: e.content.cta_text })] }), t.jsx("span", { className: "ad-sponsored-badge mt-2 block text-center text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm inline-flex mx-auto", children: "Sponsored" })] }) : t.jsx("div", { ref: c, onClick: i, className: h(d, "p-3 cursor-pointer group", n), children: t.jsxs("div", { className: "flex gap-3", children: [e.content.image && t.jsx("div", { className: "relative w-16 h-16 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-300", loading: "lazy" }) }), t.jsxs("div", { className: "flex-1 min-w-0 flex flex-col justify-between", children: [t.jsxs("div", { className: "flex items-start justify-between gap-2", children: [t.jsx("h4", { className: "font-semibold text-ad-text-primary line-clamp-2 text-sm leading-tight group-hover:text-ad-primary transition-colors flex-1", children: e.content.title }), t.jsx("span", { className: "ad-sponsored-badge flex-shrink-0 text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm", children: "Ad" })] }), t.jsxs("div", { className: "flex items-center justify-between gap-2", children: [t.jsxs("div", { className: "flex items-center gap-1.5", children: [e.content.rating && t.jsx(gt, { rating: e.content.rating }), e.content.brand && t.jsx("span", { className: "text-[10px] font-medium text-ad-text-secondary uppercase tracking-wide", children: e.content.brand })] }), t.jsxs("div", { className: "flex items-center gap-2", children: [e.content.price && t.jsx("span", { className: "text-sm font-bold text-ad-primary", children: e.content.price }), e.content.cta_text && t.jsx("button", { className: "py-1 px-2.5 bg-ad-primary text-white rounded-md text-[10px] font-semibold hover:bg-ad-primaryLight transition-all duration-200 active:scale-[0.98] whitespace-nowrap", children: e.content.cta_text })] })] })] })] }) });
|
|
3563
3412
|
}
|
|
3564
|
-
class
|
|
3413
|
+
class Qr {
|
|
3565
3414
|
constructor() {
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3415
|
+
Object.defineProperty(this, "suffixTemplates", {
|
|
3416
|
+
enumerable: !0,
|
|
3417
|
+
configurable: !0,
|
|
3418
|
+
writable: !0,
|
|
3419
|
+
value: [
|
|
3420
|
+
{
|
|
3421
|
+
id: "casual_recommendation",
|
|
3422
|
+
template: `
|
|
3570
3423
|
|
|
3571
3424
|
P.S. If you're interested, check out {product_name}. {emoji}`,
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3425
|
+
emoji: "✨",
|
|
3426
|
+
tone: "casual"
|
|
3427
|
+
},
|
|
3428
|
+
{
|
|
3429
|
+
id: "value_add",
|
|
3430
|
+
template: `
|
|
3578
3431
|
|
|
3579
3432
|
By the way, {product_name} can help with that. {emoji}`,
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
|
|
3433
|
+
emoji: "💡",
|
|
3434
|
+
tone: "professional"
|
|
3435
|
+
},
|
|
3436
|
+
{
|
|
3437
|
+
id: "pro_tip",
|
|
3438
|
+
template: `
|
|
3586
3439
|
|
|
3587
3440
|
Pro tip: {product_name} is great for this. {emoji}`,
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3441
|
+
emoji: "🎯",
|
|
3442
|
+
tone: "enthusiastic"
|
|
3443
|
+
},
|
|
3444
|
+
{
|
|
3445
|
+
id: "limited_offer",
|
|
3446
|
+
template: `
|
|
3594
3447
|
|
|
3595
3448
|
🎁 Special: {product_name} - learn more`,
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3449
|
+
emoji: "",
|
|
3450
|
+
tone: "enthusiastic"
|
|
3451
|
+
},
|
|
3452
|
+
{
|
|
3453
|
+
id: "minimal",
|
|
3454
|
+
template: `
|
|
3602
3455
|
|
|
3603
3456
|
{product_name}`,
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3457
|
+
emoji: "",
|
|
3458
|
+
tone: "casual"
|
|
3459
|
+
}
|
|
3460
|
+
]
|
|
3461
|
+
});
|
|
3608
3462
|
}
|
|
3609
3463
|
/**
|
|
3610
3464
|
* Generate suffix text for an ad
|
|
@@ -3680,391 +3534,62 @@ Pro tip: {product_name} is great for this. {emoji}`,
|
|
|
3680
3534
|
return !/[.!?。!?]\s*$/.test(r);
|
|
3681
3535
|
}
|
|
3682
3536
|
}
|
|
3683
|
-
const
|
|
3684
|
-
function Rt({
|
|
3685
|
-
ad: e,
|
|
3686
|
-
aiContext: r = "",
|
|
3687
|
-
variant: n = "block",
|
|
3688
|
-
className: s,
|
|
3689
|
-
onClick: l,
|
|
3690
|
-
onImpression: a
|
|
3691
|
-
}) {
|
|
3537
|
+
const Re = new Qr();
|
|
3538
|
+
function Rt({ ad: e, aiContext: r = "", variant: n = "block", className: s, onClick: l, onImpression: a }) {
|
|
3692
3539
|
const { impressionRef: c, handleClick: i } = Q(e, {
|
|
3693
3540
|
onClick: l,
|
|
3694
3541
|
onImpression: a
|
|
3695
|
-
}), d =
|
|
3696
|
-
return n === "inline" ?
|
|
3697
|
-
"span",
|
|
3698
|
-
{
|
|
3699
|
-
ref: c,
|
|
3700
|
-
onClick: i,
|
|
3701
|
-
className: h(
|
|
3702
|
-
"inline-flex items-center gap-1 text-ad-primary cursor-pointer",
|
|
3703
|
-
"hover:underline transition-all",
|
|
3704
|
-
"text-sm font-medium",
|
|
3705
|
-
s
|
|
3706
|
-
),
|
|
3707
|
-
children: [
|
|
3708
|
-
d,
|
|
3709
|
-
/* @__PURE__ */ t.jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })
|
|
3710
|
-
]
|
|
3711
|
-
}
|
|
3712
|
-
) : n === "minimal" ? /* @__PURE__ */ t.jsx(
|
|
3713
|
-
"span",
|
|
3714
|
-
{
|
|
3715
|
-
ref: c,
|
|
3716
|
-
onClick: i,
|
|
3717
|
-
className: h(
|
|
3718
|
-
"inline-flex items-center gap-1 text-gray-400 hover:text-ad-primary",
|
|
3719
|
-
"cursor-pointer transition-colors",
|
|
3720
|
-
"text-xs",
|
|
3721
|
-
s
|
|
3722
|
-
),
|
|
3723
|
-
children: d
|
|
3724
|
-
}
|
|
3725
|
-
) : /* @__PURE__ */ t.jsxs(
|
|
3726
|
-
"div",
|
|
3727
|
-
{
|
|
3728
|
-
ref: c,
|
|
3729
|
-
onClick: i,
|
|
3730
|
-
className: h(
|
|
3731
|
-
"ad-component mt-4 p-3 rounded-lg border border-transparent",
|
|
3732
|
-
"hover:border-ad-primary/20 hover:bg-ad-primary/5",
|
|
3733
|
-
"cursor-pointer transition-all duration-200",
|
|
3734
|
-
"group",
|
|
3735
|
-
s
|
|
3736
|
-
),
|
|
3737
|
-
children: [
|
|
3738
|
-
/* @__PURE__ */ t.jsx(
|
|
3739
|
-
"div",
|
|
3740
|
-
{
|
|
3741
|
-
className: "absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none",
|
|
3742
|
-
style: Te.getAnimatedStyle()
|
|
3743
|
-
}
|
|
3744
|
-
),
|
|
3745
|
-
/* @__PURE__ */ t.jsxs("div", { className: "relative flex items-center justify-between gap-3", children: [
|
|
3746
|
-
/* @__PURE__ */ t.jsx("p", { className: "text-sm text-gray-700", children: d }),
|
|
3747
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
|
|
3748
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge", children: "Sponsored" }),
|
|
3749
|
-
/* @__PURE__ */ t.jsx(
|
|
3750
|
-
"svg",
|
|
3751
|
-
{
|
|
3752
|
-
className: "w-4 h-4 text-ad-primary transform group-hover:translate-x-1 transition-transform",
|
|
3753
|
-
fill: "none",
|
|
3754
|
-
stroke: "currentColor",
|
|
3755
|
-
viewBox: "0 0 24 24",
|
|
3756
|
-
children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17 8l4 4m0 0l-4 4m4-4H3" })
|
|
3757
|
-
}
|
|
3758
|
-
)
|
|
3759
|
-
] })
|
|
3760
|
-
] }),
|
|
3761
|
-
e.content.image && /* @__PURE__ */ t.jsxs("div", { className: "mt-2 flex items-center gap-2", children: [
|
|
3762
|
-
/* @__PURE__ */ t.jsx(
|
|
3763
|
-
"img",
|
|
3764
|
-
{
|
|
3765
|
-
src: e.content.image,
|
|
3766
|
-
alt: e.content.title,
|
|
3767
|
-
className: "w-6 h-6 rounded object-cover",
|
|
3768
|
-
loading: "lazy"
|
|
3769
|
-
}
|
|
3770
|
-
),
|
|
3771
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-xs text-gray-500", children: e.content.body })
|
|
3772
|
-
] })
|
|
3773
|
-
]
|
|
3774
|
-
}
|
|
3775
|
-
);
|
|
3542
|
+
}), d = cr(() => Re.generateSuffix(e, r), [e, r]);
|
|
3543
|
+
return n === "inline" ? t.jsxs("span", { ref: c, onClick: i, className: h("inline-flex items-center gap-1 text-ad-primary cursor-pointer", "hover:underline transition-all", "text-sm font-medium", s), children: [d, t.jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] }) : n === "minimal" ? t.jsx("span", { ref: c, onClick: i, className: h("inline-flex items-center gap-1 text-gray-400 hover:text-ad-primary", "cursor-pointer transition-colors", "text-xs", s), children: d }) : t.jsxs("div", { ref: c, onClick: i, className: h("ad-component mt-4 p-3 rounded-lg border border-transparent", "hover:border-ad-primary/20 hover:bg-ad-primary/5", "cursor-pointer transition-all duration-200", "group", s), children: [t.jsx("div", { className: "absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none", style: Re.getAnimatedStyle() }), t.jsxs("div", { className: "relative flex items-center justify-between gap-3", children: [t.jsx("p", { className: "text-sm text-gray-700", children: d }), t.jsxs("div", { className: "flex items-center gap-2 flex-shrink-0", children: [t.jsx("span", { className: "ad-sponsored-badge", children: "Sponsored" }), t.jsx("svg", { className: "w-4 h-4 text-ad-primary transform group-hover:translate-x-1 transition-transform", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17 8l4 4m0 0l-4 4m4-4H3" }) })] })] }), e.content.image && t.jsxs("div", { className: "mt-2 flex items-center gap-2", children: [t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-6 h-6 rounded object-cover", loading: "lazy" }), t.jsx("span", { className: "text-xs text-gray-500", children: e.content.body })] })] });
|
|
3776
3544
|
}
|
|
3777
|
-
function
|
|
3778
|
-
return
|
|
3545
|
+
function Tn(e) {
|
|
3546
|
+
return t.jsx(Rt, { ...e, variant: "inline" });
|
|
3779
3547
|
}
|
|
3780
|
-
function
|
|
3781
|
-
return
|
|
3548
|
+
function Pn(e) {
|
|
3549
|
+
return t.jsx(Rt, { ...e, variant: "minimal" });
|
|
3782
3550
|
}
|
|
3783
|
-
function
|
|
3784
|
-
ad: e,
|
|
3785
|
-
variant: r = "bubble",
|
|
3786
|
-
className: n,
|
|
3787
|
-
onClick: s,
|
|
3788
|
-
onImpression: l
|
|
3789
|
-
}) {
|
|
3551
|
+
function en({ ad: e, variant: r = "bubble", className: n, onClick: s, onImpression: l }) {
|
|
3790
3552
|
const { impressionRef: a, handleClick: c } = Q(e, {
|
|
3791
3553
|
onClick: s,
|
|
3792
3554
|
onImpression: l
|
|
3793
|
-
}), i = de.useMemo(() =>
|
|
3794
|
-
return r === "bubble" ?
|
|
3795
|
-
"button",
|
|
3796
|
-
{
|
|
3797
|
-
ref: a,
|
|
3798
|
-
onClick: c,
|
|
3799
|
-
className: h(
|
|
3800
|
-
"ad-component group relative",
|
|
3801
|
-
"inline-flex items-center gap-2 px-4 py-2.5",
|
|
3802
|
-
"bg-gradient-to-r from-blue-50 to-indigo-50",
|
|
3803
|
-
"border border-blue-100 rounded-full",
|
|
3804
|
-
"hover:border-ad-primary/50 hover:shadow-md",
|
|
3805
|
-
"cursor-pointer transition-all duration-200",
|
|
3806
|
-
"text-sm font-medium text-gray-700",
|
|
3807
|
-
n
|
|
3808
|
-
),
|
|
3809
|
-
children: [
|
|
3810
|
-
/* @__PURE__ */ t.jsx("span", { children: i }),
|
|
3811
|
-
/* @__PURE__ */ t.jsx("span", { className: "ml-2 text-[10px] text-gray-400 uppercase tracking-wide", children: "Ad" })
|
|
3812
|
-
]
|
|
3813
|
-
}
|
|
3814
|
-
) : r === "pill" ? /* @__PURE__ */ t.jsx(
|
|
3815
|
-
"button",
|
|
3816
|
-
{
|
|
3817
|
-
ref: a,
|
|
3818
|
-
onClick: c,
|
|
3819
|
-
className: h(
|
|
3820
|
-
"ad-component group",
|
|
3821
|
-
"inline-flex items-center gap-2 px-3 py-1.5",
|
|
3822
|
-
"bg-ad-primary/5 border border-ad-primary/20 rounded-full",
|
|
3823
|
-
"hover:bg-ad-primary/10 hover:border-ad-primary/40",
|
|
3824
|
-
"cursor-pointer transition-all duration-200",
|
|
3825
|
-
"text-xs font-medium text-gray-600 hover:text-ad-primary",
|
|
3826
|
-
n
|
|
3827
|
-
),
|
|
3828
|
-
children: /* @__PURE__ */ t.jsx("span", { children: i })
|
|
3829
|
-
}
|
|
3830
|
-
) : /* @__PURE__ */ t.jsxs(
|
|
3831
|
-
"button",
|
|
3832
|
-
{
|
|
3833
|
-
ref: a,
|
|
3834
|
-
onClick: c,
|
|
3835
|
-
className: h(
|
|
3836
|
-
"ad-component group inline-flex items-center gap-2",
|
|
3837
|
-
"text-sm text-gray-600",
|
|
3838
|
-
"hover:text-ad-primary",
|
|
3839
|
-
'relative after:content-[""] after:absolute after:bottom-0 after:left-0',
|
|
3840
|
-
"after:w-0 after:h-px after:bg-ad-primary",
|
|
3841
|
-
"hover:after:w-full after:transition-all after:duration-200",
|
|
3842
|
-
"cursor-pointer transition-colors",
|
|
3843
|
-
n
|
|
3844
|
-
),
|
|
3845
|
-
children: [
|
|
3846
|
-
/* @__PURE__ */ t.jsx("span", { children: i }),
|
|
3847
|
-
/* @__PURE__ */ t.jsx("span", { className: "ml-1 text-[10px] text-gray-400 uppercase tracking-wide", children: "Sponsored" })
|
|
3848
|
-
]
|
|
3849
|
-
}
|
|
3850
|
-
);
|
|
3555
|
+
}), i = de.useMemo(() => Re.generateFollowUp(e), [e]);
|
|
3556
|
+
return r === "bubble" ? t.jsxs("button", { ref: a, onClick: c, className: h("ad-component group relative", "inline-flex items-center gap-2 px-4 py-2.5", "bg-gradient-to-r from-blue-50 to-indigo-50", "border border-blue-100 rounded-full", "hover:border-ad-primary/50 hover:shadow-md", "cursor-pointer transition-all duration-200", "text-sm font-medium text-gray-700", n), children: [t.jsx("span", { children: i }), t.jsx("span", { className: "ml-2 text-[10px] text-gray-400 uppercase tracking-wide", children: "Ad" })] }) : r === "pill" ? t.jsx("button", { ref: a, onClick: c, className: h("ad-component group", "inline-flex items-center gap-2 px-3 py-1.5", "bg-ad-primary/5 border border-ad-primary/20 rounded-full", "hover:bg-ad-primary/10 hover:border-ad-primary/40", "cursor-pointer transition-all duration-200", "text-xs font-medium text-gray-600 hover:text-ad-primary", n), children: t.jsx("span", { children: i }) }) : t.jsxs("button", { ref: a, onClick: c, className: h("ad-component group inline-flex items-center gap-2", "text-sm text-gray-600", "hover:text-ad-primary", 'relative after:content-[""] after:absolute after:bottom-0 after:left-0', "after:w-0 after:h-px after:bg-ad-primary", "hover:after:w-full after:transition-all after:duration-200", "cursor-pointer transition-colors", n), children: [t.jsx("span", { children: i }), t.jsx("span", { className: "ml-1 text-[10px] text-gray-400 uppercase tracking-wide", children: "Sponsored" })] });
|
|
3851
3557
|
}
|
|
3852
|
-
function
|
|
3853
|
-
questions: e,
|
|
3854
|
-
ad: r,
|
|
3855
|
-
adPosition: n = 1,
|
|
3856
|
-
variant: s = "bubble",
|
|
3857
|
-
className: l,
|
|
3858
|
-
onQuestionClick: a,
|
|
3859
|
-
onAdClick: c,
|
|
3860
|
-
onAdImpression: i
|
|
3861
|
-
}) {
|
|
3558
|
+
function In({ questions: e, ad: r, adPosition: n = 1, variant: s = "bubble", className: l, onQuestionClick: a, onAdClick: c, onAdImpression: i }) {
|
|
3862
3559
|
const d = de.useMemo(() => {
|
|
3863
|
-
if (!r)
|
|
3560
|
+
if (!r)
|
|
3561
|
+
return e.map((f) => ({ type: "question", content: f }));
|
|
3864
3562
|
const m = [];
|
|
3865
3563
|
let p = !1;
|
|
3866
3564
|
return e.forEach((f, y) => {
|
|
3867
3565
|
y === n && !p && (m.push({ type: "ad", content: r }), p = !0), m.push({ type: "question", content: f });
|
|
3868
3566
|
}), p || m.push({ type: "ad", content: r }), m;
|
|
3869
3567
|
}, [e, r, n]);
|
|
3870
|
-
return
|
|
3871
|
-
nn,
|
|
3872
|
-
{
|
|
3873
|
-
ad: m.content,
|
|
3874
|
-
variant: s,
|
|
3875
|
-
onClick: c,
|
|
3876
|
-
onImpression: i
|
|
3877
|
-
},
|
|
3878
|
-
`ad-${p}`
|
|
3879
|
-
) : /* @__PURE__ */ t.jsx(
|
|
3880
|
-
"button",
|
|
3881
|
-
{
|
|
3882
|
-
onClick: () => a == null ? void 0 : a(m.content),
|
|
3883
|
-
className: h(
|
|
3884
|
-
"inline-flex items-center gap-2 px-4 py-2.5",
|
|
3885
|
-
"bg-gray-100 hover:bg-gray-200",
|
|
3886
|
-
"border border-gray-200 rounded-full",
|
|
3887
|
-
"cursor-pointer transition-all duration-200",
|
|
3888
|
-
"text-sm font-medium text-gray-700"
|
|
3889
|
-
),
|
|
3890
|
-
children: String(m.content)
|
|
3891
|
-
},
|
|
3892
|
-
`question-${p}`
|
|
3893
|
-
)) });
|
|
3568
|
+
return t.jsx("div", { className: h("flex flex-wrap gap-2", l), children: d.map((m, p) => m.type === "ad" ? t.jsx(en, { ad: m.content, variant: s, onClick: c, onImpression: i }, `ad-${p}`) : t.jsx("button", { onClick: () => a == null ? void 0 : a(m.content), className: h("inline-flex items-center gap-2 px-4 py-2.5", "bg-gray-100 hover:bg-gray-200", "border border-gray-200 rounded-full", "cursor-pointer transition-all duration-200", "text-sm font-medium text-gray-700"), children: String(m.content) }, `question-${p}`)) });
|
|
3894
3569
|
}
|
|
3895
|
-
function
|
|
3896
|
-
ad: e,
|
|
3897
|
-
variant: r = "card",
|
|
3898
|
-
className: n,
|
|
3899
|
-
onClick: s,
|
|
3900
|
-
onImpression: l
|
|
3901
|
-
}) {
|
|
3570
|
+
function tn({ ad: e, variant: r = "card", className: n, onClick: s, onImpression: l }) {
|
|
3902
3571
|
var d;
|
|
3903
3572
|
const { impressionRef: a, handleClick: c } = Q(e, {
|
|
3904
3573
|
onClick: s,
|
|
3905
3574
|
onImpression: l
|
|
3906
|
-
}), i = de.useMemo(() =>
|
|
3907
|
-
return r === "card" ?
|
|
3908
|
-
"div",
|
|
3909
|
-
{
|
|
3910
|
-
ref: a,
|
|
3911
|
-
onClick: c,
|
|
3912
|
-
className: h(
|
|
3913
|
-
"ad-component group",
|
|
3914
|
-
"flex items-start gap-3 p-3",
|
|
3915
|
-
"bg-white border border-gray-200 rounded-lg",
|
|
3916
|
-
"hover:border-ad-primary/30 hover:shadow-md",
|
|
3917
|
-
"cursor-pointer transition-all duration-200",
|
|
3918
|
-
n
|
|
3919
|
-
),
|
|
3920
|
-
children: [
|
|
3921
|
-
e.content.image && /* @__PURE__ */ t.jsx(
|
|
3922
|
-
"img",
|
|
3923
|
-
{
|
|
3924
|
-
src: e.content.image,
|
|
3925
|
-
alt: e.content.title,
|
|
3926
|
-
className: "w-12 h-12 rounded object-cover flex-shrink-0",
|
|
3927
|
-
loading: "lazy"
|
|
3928
|
-
}
|
|
3929
|
-
),
|
|
3930
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
3931
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2 mb-1", children: [
|
|
3932
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-medium text-gray-900 truncate", children: e.content.title }),
|
|
3933
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge text-[10px]", children: "Sponsored" })
|
|
3934
|
-
] }),
|
|
3935
|
-
e.content.body && /* @__PURE__ */ t.jsx("p", { className: "text-sm text-gray-600 line-clamp-1", children: e.content.body }),
|
|
3936
|
-
((d = e.metadata) == null ? void 0 : d.category) && /* @__PURE__ */ t.jsx("span", { className: "inline-block mt-1 text-xs text-gray-400", children: e.metadata.category })
|
|
3937
|
-
] }),
|
|
3938
|
-
/* @__PURE__ */ t.jsx(
|
|
3939
|
-
"svg",
|
|
3940
|
-
{
|
|
3941
|
-
className: "w-4 h-4 text-gray-300 group-hover:text-ad-primary transition-colors flex-shrink-0",
|
|
3942
|
-
fill: "none",
|
|
3943
|
-
stroke: "currentColor",
|
|
3944
|
-
viewBox: "0 0 24 24",
|
|
3945
|
-
children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" })
|
|
3946
|
-
}
|
|
3947
|
-
)
|
|
3948
|
-
]
|
|
3949
|
-
}
|
|
3950
|
-
) : r === "list-item" ? /* @__PURE__ */ t.jsxs(
|
|
3951
|
-
"div",
|
|
3952
|
-
{
|
|
3953
|
-
ref: a,
|
|
3954
|
-
onClick: c,
|
|
3955
|
-
className: h(
|
|
3956
|
-
"ad-component group",
|
|
3957
|
-
"flex items-center gap-3 py-2 px-3",
|
|
3958
|
-
"hover:bg-gray-50 rounded-md",
|
|
3959
|
-
"cursor-pointer transition-all duration-200",
|
|
3960
|
-
n
|
|
3961
|
-
),
|
|
3962
|
-
children: [
|
|
3963
|
-
e.content.image && /* @__PURE__ */ t.jsx(
|
|
3964
|
-
"img",
|
|
3965
|
-
{
|
|
3966
|
-
src: e.content.image,
|
|
3967
|
-
alt: e.content.title,
|
|
3968
|
-
className: "w-8 h-8 rounded object-cover flex-shrink-0",
|
|
3969
|
-
loading: "lazy"
|
|
3970
|
-
}
|
|
3971
|
-
),
|
|
3972
|
-
/* @__PURE__ */ t.jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3973
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm font-medium text-gray-700 truncate", children: i }),
|
|
3974
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge text-[9px]", children: "Ad" })
|
|
3975
|
-
] }) }),
|
|
3976
|
-
/* @__PURE__ */ t.jsx(
|
|
3977
|
-
"svg",
|
|
3978
|
-
{
|
|
3979
|
-
className: "w-3 h-3 text-gray-300 group-hover:text-ad-primary transition-colors flex-shrink-0",
|
|
3980
|
-
fill: "none",
|
|
3981
|
-
stroke: "currentColor",
|
|
3982
|
-
viewBox: "0 0 24 24",
|
|
3983
|
-
children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" })
|
|
3984
|
-
}
|
|
3985
|
-
)
|
|
3986
|
-
]
|
|
3987
|
-
}
|
|
3988
|
-
) : /* @__PURE__ */ t.jsx("div", { ref: a, className: "inline-flex", children: /* @__PURE__ */ t.jsxs(
|
|
3989
|
-
"a",
|
|
3990
|
-
{
|
|
3991
|
-
onClick: c,
|
|
3992
|
-
className: h(
|
|
3993
|
-
"ad-component group inline-flex items-center gap-1.5",
|
|
3994
|
-
"text-sm text-gray-600 hover:text-ad-primary",
|
|
3995
|
-
"hover:underline",
|
|
3996
|
-
"transition-colors",
|
|
3997
|
-
n
|
|
3998
|
-
),
|
|
3999
|
-
children: [
|
|
4000
|
-
e.content.image && /* @__PURE__ */ t.jsx(
|
|
4001
|
-
"img",
|
|
4002
|
-
{
|
|
4003
|
-
src: e.content.image,
|
|
4004
|
-
alt: e.content.title,
|
|
4005
|
-
className: "w-4 h-4 rounded object-cover",
|
|
4006
|
-
loading: "lazy"
|
|
4007
|
-
}
|
|
4008
|
-
),
|
|
4009
|
-
/* @__PURE__ */ t.jsx("span", { children: i }),
|
|
4010
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge text-[9px]", children: "Ad" })
|
|
4011
|
-
]
|
|
4012
|
-
}
|
|
4013
|
-
) });
|
|
3575
|
+
}), i = de.useMemo(() => Re.generateSponsoredSource(e), [e]);
|
|
3576
|
+
return r === "card" ? t.jsxs("div", { ref: a, onClick: c, className: h("ad-component group", "flex items-start gap-3 p-3", "bg-white border border-gray-200 rounded-lg", "hover:border-ad-primary/30 hover:shadow-md", "cursor-pointer transition-all duration-200", n), children: [e.content.image && t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-12 h-12 rounded object-cover flex-shrink-0", loading: "lazy" }), t.jsxs("div", { className: "flex-1 min-w-0", children: [t.jsxs("div", { className: "flex items-center gap-2 mb-1", children: [t.jsx("h4", { className: "font-medium text-gray-900 truncate", children: e.content.title }), t.jsx("span", { className: "ad-sponsored-badge text-[10px]", children: "Sponsored" })] }), e.content.body && t.jsx("p", { className: "text-sm text-gray-600 line-clamp-1", children: e.content.body }), ((d = e.metadata) == null ? void 0 : d.category) && t.jsx("span", { className: "inline-block mt-1 text-xs text-gray-400", children: e.metadata.category })] }), t.jsx("svg", { className: "w-4 h-4 text-gray-300 group-hover:text-ad-primary transition-colors flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] }) : r === "list-item" ? t.jsxs("div", { ref: a, onClick: c, className: h("ad-component group", "flex items-center gap-3 py-2 px-3", "hover:bg-gray-50 rounded-md", "cursor-pointer transition-all duration-200", n), children: [e.content.image && t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-8 h-8 rounded object-cover flex-shrink-0", loading: "lazy" }), t.jsx("div", { className: "flex-1 min-w-0", children: t.jsxs("div", { className: "flex items-center gap-2", children: [t.jsx("span", { className: "text-sm font-medium text-gray-700 truncate", children: i }), t.jsx("span", { className: "ad-sponsored-badge text-[9px]", children: "Ad" })] }) }), t.jsx("svg", { className: "w-3 h-3 text-gray-300 group-hover:text-ad-primary transition-colors flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })] }) : t.jsx("div", { ref: a, className: "inline-flex", children: t.jsxs("a", { onClick: c, className: h("ad-component group inline-flex items-center gap-1.5", "text-sm text-gray-600 hover:text-ad-primary", "hover:underline", "transition-colors", n), children: [e.content.image && t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-4 h-4 rounded object-cover", loading: "lazy" }), t.jsx("span", { children: i }), t.jsx("span", { className: "ad-sponsored-badge text-[9px]", children: "Ad" })] }) });
|
|
4014
3577
|
}
|
|
4015
|
-
function Dn({
|
|
4016
|
-
sources: e,
|
|
4017
|
-
ad: r,
|
|
4018
|
-
adPosition: n = 1,
|
|
4019
|
-
variant: s = "list-item",
|
|
4020
|
-
className: l,
|
|
4021
|
-
onSourceClick: a,
|
|
4022
|
-
onAdClick: c,
|
|
4023
|
-
onAdImpression: i
|
|
4024
|
-
}) {
|
|
3578
|
+
function Dn({ sources: e, ad: r, adPosition: n = 1, variant: s = "list-item", className: l, onSourceClick: a, onAdClick: c, onAdImpression: i }) {
|
|
4025
3579
|
const d = de.useMemo(() => {
|
|
4026
|
-
if (!r)
|
|
3580
|
+
if (!r)
|
|
3581
|
+
return e.map((f) => ({ type: "source", content: f }));
|
|
4027
3582
|
const m = [];
|
|
4028
3583
|
let p = !1;
|
|
4029
3584
|
return e.forEach((f, y) => {
|
|
4030
3585
|
y === n && !p && (m.push({ type: "ad", content: r }), p = !0), m.push({ type: "source", content: f });
|
|
4031
3586
|
}), p || m.push({ type: "ad", content: r }), m;
|
|
4032
3587
|
}, [e, r, n]);
|
|
4033
|
-
return
|
|
3588
|
+
return t.jsx("div", { className: h("space-y-1", l), children: d.map((m, p) => {
|
|
4034
3589
|
if (m.type === "ad")
|
|
4035
|
-
return
|
|
4036
|
-
on,
|
|
4037
|
-
{
|
|
4038
|
-
ad: m.content,
|
|
4039
|
-
variant: s,
|
|
4040
|
-
onClick: c,
|
|
4041
|
-
onImpression: i
|
|
4042
|
-
},
|
|
4043
|
-
`ad-${p}`
|
|
4044
|
-
);
|
|
3590
|
+
return t.jsx(tn, { ad: m.content, variant: s, onClick: c, onImpression: i }, `ad-${p}`);
|
|
4045
3591
|
const f = m.content;
|
|
4046
|
-
return
|
|
4047
|
-
"a",
|
|
4048
|
-
{
|
|
4049
|
-
onClick: () => a == null ? void 0 : a(f),
|
|
4050
|
-
className: "flex items-center gap-3 py-2 px-3 hover:bg-gray-50 rounded-md cursor-pointer transition-colors",
|
|
4051
|
-
children: [
|
|
4052
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-8 h-8 rounded bg-gray-100 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ t.jsx("svg", { className: "w-4 h-4 text-gray-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) }) }),
|
|
4053
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm text-gray-700 truncate", children: f.title }),
|
|
4054
|
-
/* @__PURE__ */ t.jsx(
|
|
4055
|
-
"svg",
|
|
4056
|
-
{
|
|
4057
|
-
className: "w-3 h-3 text-gray-300 ml-auto flex-shrink-0",
|
|
4058
|
-
fill: "none",
|
|
4059
|
-
stroke: "currentColor",
|
|
4060
|
-
viewBox: "0 0 24 24",
|
|
4061
|
-
children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" })
|
|
4062
|
-
}
|
|
4063
|
-
)
|
|
4064
|
-
]
|
|
4065
|
-
},
|
|
4066
|
-
`source-${p}`
|
|
4067
|
-
);
|
|
3592
|
+
return t.jsxs("a", { onClick: () => a == null ? void 0 : a(f), className: "flex items-center gap-3 py-2 px-3 hover:bg-gray-50 rounded-md cursor-pointer transition-colors", children: [t.jsx("div", { className: "w-8 h-8 rounded bg-gray-100 flex items-center justify-center flex-shrink-0", children: t.jsx("svg", { className: "w-4 h-4 text-gray-500", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" }) }) }), t.jsx("span", { className: "text-sm text-gray-700 truncate", children: f.title }), t.jsx("svg", { className: "w-3 h-3 text-gray-300 ml-auto flex-shrink-0", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }) })] }, `source-${p}`);
|
|
4068
3593
|
}) });
|
|
4069
3594
|
}
|
|
4070
3595
|
const ht = {
|
|
@@ -4102,84 +3627,37 @@ const ht = {
|
|
|
4102
3627
|
function Tt(e) {
|
|
4103
3628
|
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);
|
|
4104
3629
|
}
|
|
4105
|
-
function
|
|
3630
|
+
function rn(e) {
|
|
4106
3631
|
return /^[\d\s+()-]{7,}$/.test(e);
|
|
4107
3632
|
}
|
|
4108
|
-
function
|
|
3633
|
+
function nn(e) {
|
|
4109
3634
|
try {
|
|
4110
3635
|
return new URL(e), !0;
|
|
4111
3636
|
} catch {
|
|
4112
3637
|
return !1;
|
|
4113
3638
|
}
|
|
4114
3639
|
}
|
|
4115
|
-
function
|
|
4116
|
-
|
|
4117
|
-
value: r,
|
|
4118
|
-
error: n,
|
|
4119
|
-
disabled: s,
|
|
4120
|
-
onChange: l
|
|
4121
|
-
}) {
|
|
4122
|
-
return /* @__PURE__ */ t.jsxs("div", { className: "relative", children: [
|
|
4123
|
-
/* @__PURE__ */ t.jsx(
|
|
4124
|
-
"input",
|
|
4125
|
-
{
|
|
4126
|
-
type: e.type,
|
|
4127
|
-
placeholder: e.placeholder,
|
|
4128
|
-
required: e.required,
|
|
4129
|
-
value: r,
|
|
4130
|
-
onChange: (a) => l(a.target.value),
|
|
4131
|
-
disabled: s,
|
|
4132
|
-
className: h(
|
|
4133
|
-
"w-full px-3 py-2 rounded-lg text-xs",
|
|
4134
|
-
"bg-white/70 backdrop-blur-sm",
|
|
4135
|
-
"border transition-all duration-200",
|
|
4136
|
-
"placeholder:text-ad-text-muted/50",
|
|
4137
|
-
"focus:outline-none focus:ring-1 focus:ring-ad-primary/30",
|
|
4138
|
-
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
4139
|
-
n ? "border-red-300 focus:border-red-400" : "border-ad-border/60 focus:border-ad-primary focus:bg-white",
|
|
4140
|
-
"shadow-sm"
|
|
4141
|
-
)
|
|
4142
|
-
}
|
|
4143
|
-
),
|
|
4144
|
-
n && /* @__PURE__ */ t.jsxs("p", { className: "mt-1 text-[10px] text-red-500 flex items-center gap-0.5", children: [
|
|
4145
|
-
/* @__PURE__ */ t.jsx("svg", { className: "w-2.5 h-2.5", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ t.jsx(
|
|
4146
|
-
"path",
|
|
4147
|
-
{
|
|
4148
|
-
fillRule: "evenodd",
|
|
4149
|
-
d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",
|
|
4150
|
-
clipRule: "evenodd"
|
|
4151
|
-
}
|
|
4152
|
-
) }),
|
|
4153
|
-
n
|
|
4154
|
-
] })
|
|
4155
|
-
] });
|
|
3640
|
+
function on({ config: e, value: r, error: n, disabled: s, onChange: l }) {
|
|
3641
|
+
return t.jsxs("div", { className: "relative", children: [t.jsx("input", { type: e.type, placeholder: e.placeholder, required: e.required, value: r, onChange: (a) => l(a.target.value), disabled: s, className: h("w-full px-3 py-2 rounded-lg text-xs", "bg-white/70 backdrop-blur-sm", "border transition-all duration-200", "placeholder:text-ad-text-muted/50", "focus:outline-none focus:ring-1 focus:ring-ad-primary/30", "disabled:opacity-50 disabled:cursor-not-allowed", n ? "border-red-300 focus:border-red-400" : "border-ad-border/60 focus:border-ad-primary focus:bg-white", "shadow-sm") }), n && t.jsxs("p", { className: "mt-1 text-[10px] text-red-500 flex items-center gap-0.5", children: [t.jsx("svg", { className: "w-2.5 h-2.5", fill: "currentColor", viewBox: "0 0 20 20", children: t.jsx("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z", clipRule: "evenodd" }) }), n] })] });
|
|
4156
3642
|
}
|
|
4157
|
-
function
|
|
4158
|
-
ad: e,
|
|
4159
|
-
fields: r = ["email"],
|
|
4160
|
-
submitText: n = "Get Started",
|
|
4161
|
-
successMessage: s = "Thanks! We'll be in touch soon.",
|
|
4162
|
-
onSuccess: l,
|
|
4163
|
-
onError: a,
|
|
4164
|
-
className: c
|
|
4165
|
-
}) {
|
|
3643
|
+
function Mn({ ad: e, fields: r = ["email"], submitText: n = "Get Started", successMessage: s = "Thanks! We'll be in touch soon.", onSuccess: l, onError: a, className: c }) {
|
|
4166
3644
|
const { impressionRef: i } = Q(e), [d, m] = E({}), [p, f] = E({}), [y, N] = E(!1), [v, b] = E(!1), x = () => {
|
|
4167
3645
|
const k = {};
|
|
4168
3646
|
return r.forEach((S) => {
|
|
4169
|
-
const
|
|
4170
|
-
if (
|
|
4171
|
-
k[S] = `${
|
|
3647
|
+
const D = ht[S], L = d[S];
|
|
3648
|
+
if (D.required && !L) {
|
|
3649
|
+
k[S] = `${D.label} is required`;
|
|
4172
3650
|
return;
|
|
4173
3651
|
}
|
|
4174
|
-
if (S === "email" &&
|
|
3652
|
+
if (S === "email" && L && !Tt(L)) {
|
|
4175
3653
|
k[S] = "Please enter a valid email address";
|
|
4176
3654
|
return;
|
|
4177
3655
|
}
|
|
4178
|
-
if (S === "phone" &&
|
|
3656
|
+
if (S === "phone" && L && !rn(L)) {
|
|
4179
3657
|
k[S] = "Please enter a valid phone number";
|
|
4180
3658
|
return;
|
|
4181
3659
|
}
|
|
4182
|
-
if (S === "website" &&
|
|
3660
|
+
if (S === "website" && L && !nn(L)) {
|
|
4183
3661
|
k[S] = "Please enter a valid URL";
|
|
4184
3662
|
return;
|
|
4185
3663
|
}
|
|
@@ -4208,115 +3686,24 @@ function Fn({
|
|
|
4208
3686
|
mode: "no-cors"
|
|
4209
3687
|
}), b(!0), l == null || l(d), console.log("[LeadGenAd] Form submitted successfully:", d);
|
|
4210
3688
|
} catch (S) {
|
|
4211
|
-
const
|
|
4212
|
-
a == null || a(
|
|
3689
|
+
const D = S instanceof Error ? S : new Error("Submission failed");
|
|
3690
|
+
a == null || a(D), console.error("[LeadGenAd] Submission failed:", D);
|
|
4213
3691
|
} finally {
|
|
4214
3692
|
N(!1);
|
|
4215
3693
|
}
|
|
4216
3694
|
}
|
|
4217
3695
|
}, w = (k, S) => {
|
|
4218
|
-
m((
|
|
4219
|
-
const
|
|
4220
|
-
return delete
|
|
3696
|
+
m((D) => ({ ...D, [k]: S })), p[k] && f((D) => {
|
|
3697
|
+
const L = { ...D };
|
|
3698
|
+
return delete L[k], L;
|
|
4221
3699
|
});
|
|
4222
3700
|
};
|
|
4223
|
-
return v ?
|
|
4224
|
-
|
|
4225
|
-
{
|
|
4226
|
-
|
|
4227
|
-
className: h(
|
|
4228
|
-
"ad-component relative overflow-hidden rounded-lg",
|
|
4229
|
-
"bg-gradient-to-br from-green-50 to-emerald-50",
|
|
4230
|
-
"border border-green-200/60",
|
|
4231
|
-
"p-3 animate-scale-in",
|
|
4232
|
-
c
|
|
4233
|
-
),
|
|
4234
|
-
children: /* @__PURE__ */ t.jsx("div", { className: "relative z-10", children: /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4235
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-7 h-7 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ t.jsx("svg", { className: "w-3 h-3 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M5 13l4 4L19 7" }) }) }),
|
|
4236
|
-
/* @__PURE__ */ t.jsx("p", { className: "text-xs font-semibold text-green-800 flex-1", children: s })
|
|
4237
|
-
] }) })
|
|
4238
|
-
}
|
|
4239
|
-
) : /* @__PURE__ */ t.jsxs(
|
|
4240
|
-
"div",
|
|
4241
|
-
{
|
|
4242
|
-
ref: i,
|
|
4243
|
-
className: h(
|
|
4244
|
-
"ad-component relative overflow-hidden rounded-lg",
|
|
4245
|
-
"bg-white/80 backdrop-blur-sm border border-ad-border/60",
|
|
4246
|
-
"shadow-sm hover:shadow-md",
|
|
4247
|
-
"transition-all duration-200",
|
|
4248
|
-
"p-3 max-w-xs",
|
|
4249
|
-
c
|
|
4250
|
-
),
|
|
4251
|
-
children: [
|
|
4252
|
-
e.content.image && /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
4253
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-8 h-8 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: /* @__PURE__ */ t.jsx(
|
|
4254
|
-
"img",
|
|
4255
|
-
{
|
|
4256
|
-
src: e.content.image,
|
|
4257
|
-
alt: e.content.title,
|
|
4258
|
-
className: "w-full h-full object-cover",
|
|
4259
|
-
loading: "lazy"
|
|
4260
|
-
}
|
|
4261
|
-
) }),
|
|
4262
|
-
/* @__PURE__ */ t.jsxs("div", { className: "min-w-0", children: [
|
|
4263
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-semibold text-ad-text-primary text-xs truncate", children: e.content.title }),
|
|
4264
|
-
e.content.body && /* @__PURE__ */ t.jsx("p", { className: "text-[10px] text-ad-text-secondary truncate", children: e.content.body })
|
|
4265
|
-
] })
|
|
4266
|
-
] }),
|
|
4267
|
-
/* @__PURE__ */ t.jsxs("form", { onSubmit: j, className: "space-y-2", children: [
|
|
4268
|
-
r.map((k) => {
|
|
4269
|
-
const S = ht[k];
|
|
4270
|
-
return /* @__PURE__ */ t.jsx(
|
|
4271
|
-
ln,
|
|
4272
|
-
{
|
|
4273
|
-
config: S,
|
|
4274
|
-
field: k,
|
|
4275
|
-
value: d[k] || "",
|
|
4276
|
-
error: p[k],
|
|
4277
|
-
disabled: y,
|
|
4278
|
-
onChange: (M) => w(k, M)
|
|
4279
|
-
},
|
|
4280
|
-
k
|
|
4281
|
-
);
|
|
4282
|
-
}),
|
|
4283
|
-
/* @__PURE__ */ t.jsx(
|
|
4284
|
-
"button",
|
|
4285
|
-
{
|
|
4286
|
-
type: "submit",
|
|
4287
|
-
disabled: y,
|
|
4288
|
-
className: h(
|
|
4289
|
-
"w-full py-2 px-3 rounded-lg font-semibold text-white text-xs",
|
|
4290
|
-
"bg-gradient-to-r from-ad-primary to-ad-primaryLight",
|
|
4291
|
-
"hover:shadow-glow",
|
|
4292
|
-
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
4293
|
-
"transition-all duration-200",
|
|
4294
|
-
"flex items-center justify-center gap-1.5",
|
|
4295
|
-
"active:scale-[0.98]"
|
|
4296
|
-
),
|
|
4297
|
-
children: y ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
4298
|
-
/* @__PURE__ */ t.jsxs("svg", { className: "w-3 h-3 animate-spin", fill: "none", viewBox: "0 0 24 24", children: [
|
|
4299
|
-
/* @__PURE__ */ t.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
4300
|
-
/* @__PURE__ */ t.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })
|
|
4301
|
-
] }),
|
|
4302
|
-
"Submitting..."
|
|
4303
|
-
] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
4304
|
-
n,
|
|
4305
|
-
/* @__PURE__ */ t.jsx("svg", { className: "w-3 h-3", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 7l5 5m0 0l-5 5m5-5H6" }) })
|
|
4306
|
-
] })
|
|
4307
|
-
}
|
|
4308
|
-
)
|
|
4309
|
-
] }),
|
|
4310
|
-
/* @__PURE__ */ t.jsx("span", { className: "ad-sponsored-badge mt-2 text-center block text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm inline-flex mx-auto", children: "Sponsored" })
|
|
4311
|
-
]
|
|
4312
|
-
}
|
|
4313
|
-
);
|
|
3701
|
+
return v ? t.jsx("div", { ref: i, className: h("ad-component relative overflow-hidden rounded-lg", "bg-gradient-to-br from-green-50 to-emerald-50", "border border-green-200/60", "p-3 animate-scale-in", c), children: t.jsx("div", { className: "relative z-10", children: t.jsxs("div", { className: "flex items-center gap-2", children: [t.jsx("div", { className: "w-7 h-7 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0", children: t.jsx("svg", { className: "w-3 h-3 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M5 13l4 4L19 7" }) }) }), t.jsx("p", { className: "text-xs font-semibold text-green-800 flex-1", children: s })] }) }) }) : t.jsxs("div", { ref: i, className: h("ad-component relative overflow-hidden rounded-lg", "bg-white/80 backdrop-blur-sm border border-ad-border/60", "shadow-sm hover:shadow-md", "transition-all duration-200", "p-3 max-w-xs", c), children: [e.content.image && t.jsxs("div", { className: "flex items-center gap-2 mb-3", children: [t.jsx("div", { className: "w-8 h-8 rounded-lg overflow-hidden flex-shrink-0 bg-gray-100", children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover", loading: "lazy" }) }), t.jsxs("div", { className: "min-w-0", children: [t.jsx("h4", { className: "font-semibold text-ad-text-primary text-xs truncate", children: e.content.title }), e.content.body && t.jsx("p", { className: "text-[10px] text-ad-text-secondary truncate", children: e.content.body })] })] }), t.jsxs("form", { onSubmit: j, className: "space-y-2", children: [r.map((k) => {
|
|
3702
|
+
const S = ht[k];
|
|
3703
|
+
return t.jsx(on, { config: S, field: k, value: d[k] || "", error: p[k], disabled: y, onChange: (D) => w(k, D) }, k);
|
|
3704
|
+
}), t.jsx("button", { type: "submit", disabled: y, className: h("w-full py-2 px-3 rounded-lg font-semibold text-white text-xs", "bg-gradient-to-r from-ad-primary to-ad-primaryLight", "hover:shadow-glow", "disabled:opacity-50 disabled:cursor-not-allowed", "transition-all duration-200", "flex items-center justify-center gap-1.5", "active:scale-[0.98]"), children: y ? t.jsxs(t.Fragment, { children: [t.jsxs("svg", { className: "w-3 h-3 animate-spin", fill: "none", viewBox: "0 0 24 24", children: [t.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), t.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), "Submitting..."] }) : t.jsxs(t.Fragment, { children: [n, t.jsx("svg", { className: "w-3 h-3", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 7l5 5m0 0l-5 5m5-5H6" }) })] }) })] }), t.jsx("span", { className: "ad-sponsored-badge mt-2 text-center block text-[8px] font-medium text-ad-text-muted/60 bg-white/90 backdrop-blur-sm border border-ad-border/30 px-1.5 py-0.5 rounded shadow-sm inline-flex mx-auto", children: "Sponsored" })] });
|
|
4314
3705
|
}
|
|
4315
|
-
function
|
|
4316
|
-
ad: e,
|
|
4317
|
-
submitText: r = "Subscribe",
|
|
4318
|
-
className: n
|
|
4319
|
-
}) {
|
|
3706
|
+
function Ln({ ad: e, submitText: r = "Subscribe", className: n }) {
|
|
4320
3707
|
const [s, l] = E(""), [a, c] = E(!1), [i, d] = E(!1), [m, p] = E(null), { impressionRef: f } = Q(e), y = async (N) => {
|
|
4321
3708
|
if (N.preventDefault(), !s || !Tt(s)) {
|
|
4322
3709
|
p("Please enter a valid email");
|
|
@@ -4336,92 +3723,9 @@ function zn({
|
|
|
4336
3723
|
c(!1);
|
|
4337
3724
|
}
|
|
4338
3725
|
};
|
|
4339
|
-
return i ?
|
|
4340
|
-
"div",
|
|
4341
|
-
{
|
|
4342
|
-
ref: f,
|
|
4343
|
-
className: h(
|
|
4344
|
-
"ad-component relative overflow-hidden rounded-lg",
|
|
4345
|
-
"bg-gradient-to-r from-green-50 to-emerald-50",
|
|
4346
|
-
"border border-green-200/60",
|
|
4347
|
-
"inline-flex items-center gap-1.5 px-3 py-1.5",
|
|
4348
|
-
"animate-scale-in",
|
|
4349
|
-
n
|
|
4350
|
-
),
|
|
4351
|
-
children: [
|
|
4352
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-4 h-4 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ t.jsx("svg", { className: "w-2.5 h-2.5 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }),
|
|
4353
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-[10px] font-semibold text-green-700", children: "Subscribed!" })
|
|
4354
|
-
]
|
|
4355
|
-
}
|
|
4356
|
-
) : /* @__PURE__ */ t.jsxs(
|
|
4357
|
-
"div",
|
|
4358
|
-
{
|
|
4359
|
-
ref: f,
|
|
4360
|
-
className: h(
|
|
4361
|
-
"ad-component relative overflow-hidden rounded-lg",
|
|
4362
|
-
"bg-white/80 backdrop-blur-sm border border-ad-border/60",
|
|
4363
|
-
"shadow-sm hover:shadow-md",
|
|
4364
|
-
"transition-all duration-200",
|
|
4365
|
-
"inline-flex items-center gap-2 p-2",
|
|
4366
|
-
"group",
|
|
4367
|
-
n
|
|
4368
|
-
),
|
|
4369
|
-
children: [
|
|
4370
|
-
e.content.image && /* @__PURE__ */ t.jsx("div", { className: "w-7 h-7 rounded-md overflow-hidden flex-shrink-0 bg-gray-100", children: /* @__PURE__ */ t.jsx(
|
|
4371
|
-
"img",
|
|
4372
|
-
{
|
|
4373
|
-
src: e.content.image,
|
|
4374
|
-
alt: e.content.title,
|
|
4375
|
-
className: "w-full h-full object-cover",
|
|
4376
|
-
loading: "lazy"
|
|
4377
|
-
}
|
|
4378
|
-
) }),
|
|
4379
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-[10px] font-semibold text-ad-text-primary truncate group-hover:text-ad-primary transition-colors max-w-[120px]", children: e.content.title }),
|
|
4380
|
-
/* @__PURE__ */ t.jsxs("form", { onSubmit: y, className: "inline-flex items-center gap-1.5 flex-1", children: [
|
|
4381
|
-
/* @__PURE__ */ t.jsx(
|
|
4382
|
-
"input",
|
|
4383
|
-
{
|
|
4384
|
-
type: "email",
|
|
4385
|
-
placeholder: "Email",
|
|
4386
|
-
value: s,
|
|
4387
|
-
onChange: (N) => l(N.target.value),
|
|
4388
|
-
className: h(
|
|
4389
|
-
"px-2 py-1 text-[10px] rounded-md bg-white/70 backdrop-blur-sm",
|
|
4390
|
-
"border border-ad-border/60 transition-all duration-200",
|
|
4391
|
-
"focus:outline-none focus:ring-1 focus:ring-ad-primary/30 focus:border-ad-primary",
|
|
4392
|
-
"placeholder:text-ad-text-muted/50 w-24",
|
|
4393
|
-
m ? "border-red-300" : ""
|
|
4394
|
-
),
|
|
4395
|
-
disabled: a
|
|
4396
|
-
}
|
|
4397
|
-
),
|
|
4398
|
-
/* @__PURE__ */ t.jsx(
|
|
4399
|
-
"button",
|
|
4400
|
-
{
|
|
4401
|
-
type: "submit",
|
|
4402
|
-
disabled: a || !s,
|
|
4403
|
-
className: h(
|
|
4404
|
-
"px-2 py-1 text-[10px] font-semibold text-white rounded-md",
|
|
4405
|
-
"bg-gradient-to-r from-ad-primary to-ad-primaryLight",
|
|
4406
|
-
"hover:shadow-glow disabled:opacity-50 disabled:cursor-not-allowed",
|
|
4407
|
-
"transition-all duration-200",
|
|
4408
|
-
"active:scale-[0.98]",
|
|
4409
|
-
"whitespace-nowrap"
|
|
4410
|
-
),
|
|
4411
|
-
children: a ? "..." : r
|
|
4412
|
-
}
|
|
4413
|
-
)
|
|
4414
|
-
] }),
|
|
4415
|
-
m && /* @__PURE__ */ t.jsx("p", { className: "absolute -bottom-4 left-0 text-[9px] text-red-500", children: m })
|
|
4416
|
-
]
|
|
4417
|
-
}
|
|
4418
|
-
);
|
|
3726
|
+
return i ? t.jsxs("div", { ref: f, className: h("ad-component relative overflow-hidden rounded-lg", "bg-gradient-to-r from-green-50 to-emerald-50", "border border-green-200/60", "inline-flex items-center gap-1.5 px-3 py-1.5", "animate-scale-in", n), children: [t.jsx("div", { className: "w-4 h-4 rounded-full bg-green-500 flex items-center justify-center flex-shrink-0", children: t.jsx("svg", { className: "w-2.5 h-2.5 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }), t.jsx("span", { className: "text-[10px] font-semibold text-green-700", children: "Subscribed!" })] }) : t.jsxs("div", { ref: f, className: h("ad-component relative overflow-hidden rounded-lg", "bg-white/80 backdrop-blur-sm border border-ad-border/60", "shadow-sm hover:shadow-md", "transition-all duration-200", "inline-flex items-center gap-2 p-2", "group", n), children: [e.content.image && t.jsx("div", { className: "w-7 h-7 rounded-md overflow-hidden flex-shrink-0 bg-gray-100", children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover", loading: "lazy" }) }), t.jsx("span", { className: "text-[10px] font-semibold text-ad-text-primary truncate group-hover:text-ad-primary transition-colors max-w-[120px]", children: e.content.title }), t.jsxs("form", { onSubmit: y, className: "inline-flex items-center gap-1.5 flex-1", children: [t.jsx("input", { type: "email", placeholder: "Email", value: s, onChange: (N) => l(N.target.value), className: h("px-2 py-1 text-[10px] rounded-md bg-white/70 backdrop-blur-sm", "border border-ad-border/60 transition-all duration-200", "focus:outline-none focus:ring-1 focus:ring-ad-primary/30 focus:border-ad-primary", "placeholder:text-ad-text-muted/50 w-24", m ? "border-red-300" : ""), disabled: a }), t.jsx("button", { type: "submit", disabled: a || !s, className: h("px-2 py-1 text-[10px] font-semibold text-white rounded-md", "bg-gradient-to-r from-ad-primary to-ad-primaryLight", "hover:shadow-glow disabled:opacity-50 disabled:cursor-not-allowed", "transition-all duration-200", "active:scale-[0.98]", "whitespace-nowrap"), children: a ? "..." : r })] }), m && t.jsx("p", { className: "absolute -bottom-4 left-0 text-[9px] text-red-500", children: m })] });
|
|
4419
3727
|
}
|
|
4420
|
-
function
|
|
4421
|
-
ad: e,
|
|
4422
|
-
submitText: r = "Join",
|
|
4423
|
-
className: n
|
|
4424
|
-
}) {
|
|
3728
|
+
function On({ ad: e, submitText: r = "Join", className: n }) {
|
|
4425
3729
|
const [s, l] = E(""), [a, c] = E(!1), [i, d] = E(!1), { impressionRef: m } = Q(e), p = async (f) => {
|
|
4426
3730
|
if (f.preventDefault(), !!s) {
|
|
4427
3731
|
c(!0);
|
|
@@ -4437,70 +3741,7 @@ function $n({
|
|
|
4437
3741
|
}
|
|
4438
3742
|
}
|
|
4439
3743
|
};
|
|
4440
|
-
return i ?
|
|
4441
|
-
"span",
|
|
4442
|
-
{
|
|
4443
|
-
ref: m,
|
|
4444
|
-
className: h(
|
|
4445
|
-
"ad-component inline-flex items-center gap-1 text-green-600 text-[10px] font-medium",
|
|
4446
|
-
"animate-fade-in",
|
|
4447
|
-
n
|
|
4448
|
-
),
|
|
4449
|
-
children: [
|
|
4450
|
-
/* @__PURE__ */ t.jsx("svg", { className: "w-3 h-3", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ t.jsx(
|
|
4451
|
-
"path",
|
|
4452
|
-
{
|
|
4453
|
-
fillRule: "evenodd",
|
|
4454
|
-
d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",
|
|
4455
|
-
clipRule: "evenodd"
|
|
4456
|
-
}
|
|
4457
|
-
) }),
|
|
4458
|
-
"Subscribed"
|
|
4459
|
-
]
|
|
4460
|
-
}
|
|
4461
|
-
) : /* @__PURE__ */ t.jsxs(
|
|
4462
|
-
"form",
|
|
4463
|
-
{
|
|
4464
|
-
ref: m,
|
|
4465
|
-
onSubmit: p,
|
|
4466
|
-
className: h(
|
|
4467
|
-
"ad-component inline-flex items-center gap-1.5 text-[10px]",
|
|
4468
|
-
"bg-white/70 backdrop-blur-sm border border-ad-border/50 rounded-md px-2 py-1",
|
|
4469
|
-
"hover:border-ad-primary/30 transition-all duration-200",
|
|
4470
|
-
n
|
|
4471
|
-
),
|
|
4472
|
-
children: [
|
|
4473
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-ad-text-primary font-medium truncate", children: e.content.title }),
|
|
4474
|
-
/* @__PURE__ */ t.jsx(
|
|
4475
|
-
"input",
|
|
4476
|
-
{
|
|
4477
|
-
type: "email",
|
|
4478
|
-
placeholder: "Email",
|
|
4479
|
-
value: s,
|
|
4480
|
-
onChange: (f) => l(f.target.value),
|
|
4481
|
-
className: "px-1.5 py-0.5 bg-transparent border-none text-[10px] focus:outline-none focus:ring-0 w-20",
|
|
4482
|
-
disabled: a,
|
|
4483
|
-
required: !0
|
|
4484
|
-
}
|
|
4485
|
-
),
|
|
4486
|
-
/* @__PURE__ */ t.jsx(
|
|
4487
|
-
"button",
|
|
4488
|
-
{
|
|
4489
|
-
type: "submit",
|
|
4490
|
-
disabled: a || !s,
|
|
4491
|
-
className: h(
|
|
4492
|
-
"px-2 py-0.5 text-[9px] font-semibold rounded-md text-white",
|
|
4493
|
-
"bg-ad-primary hover:bg-ad-primaryLight",
|
|
4494
|
-
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
4495
|
-
"transition-all duration-200",
|
|
4496
|
-
"active:scale-[0.98]"
|
|
4497
|
-
),
|
|
4498
|
-
children: r
|
|
4499
|
-
}
|
|
4500
|
-
)
|
|
4501
|
-
]
|
|
4502
|
-
}
|
|
4503
|
-
);
|
|
3744
|
+
return i ? t.jsxs("span", { ref: m, className: h("ad-component inline-flex items-center gap-1 text-green-600 text-[10px] font-medium", "animate-fade-in", n), children: [t.jsx("svg", { className: "w-3 h-3", fill: "currentColor", viewBox: "0 0 20 20", children: t.jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z", clipRule: "evenodd" }) }), "Subscribed"] }) : t.jsxs("form", { ref: m, onSubmit: p, className: h("ad-component inline-flex items-center gap-1.5 text-[10px]", "bg-white/70 backdrop-blur-sm border border-ad-border/50 rounded-md px-2 py-1", "hover:border-ad-primary/30 transition-all duration-200", n), children: [t.jsx("span", { className: "text-ad-text-primary font-medium truncate", children: e.content.title }), t.jsx("input", { type: "email", placeholder: "Email", value: s, onChange: (f) => l(f.target.value), className: "px-1.5 py-0.5 bg-transparent border-none text-[10px] focus:outline-none focus:ring-0 w-20", disabled: a, required: !0 }), t.jsx("button", { type: "submit", disabled: a || !s, className: h("px-2 py-0.5 text-[9px] font-semibold rounded-md text-white", "bg-ad-primary hover:bg-ad-primaryLight", "disabled:opacity-50 disabled:cursor-not-allowed", "transition-all duration-200", "active:scale-[0.98]"), children: r })] });
|
|
4504
3745
|
}
|
|
4505
3746
|
const Pt = {
|
|
4506
3747
|
leaderboard: { width: "728px", height: "90px" },
|
|
@@ -4513,17 +3754,7 @@ const Pt = {
|
|
|
4513
3754
|
"mobile-banner": { width: "320px", height: "50px" },
|
|
4514
3755
|
custom: { width: "auto", height: "auto" }
|
|
4515
3756
|
};
|
|
4516
|
-
function
|
|
4517
|
-
ad: e,
|
|
4518
|
-
size: r = "medium-rectangle",
|
|
4519
|
-
width: n,
|
|
4520
|
-
height: s,
|
|
4521
|
-
refreshInterval: l = 0,
|
|
4522
|
-
dismissible: a = !1,
|
|
4523
|
-
onDismiss: c,
|
|
4524
|
-
onClick: i,
|
|
4525
|
-
className: d
|
|
4526
|
-
}) {
|
|
3757
|
+
function sn({ ad: e, size: r = "medium-rectangle", width: n, height: s, refreshInterval: l = 0, dismissible: a = !1, onDismiss: c, onClick: i, className: d }) {
|
|
4527
3758
|
const [m, p] = E(!1), [f, y] = E(!0), { impressionRef: N, handleClick: v } = Q(e, {
|
|
4528
3759
|
onClick: i
|
|
4529
3760
|
});
|
|
@@ -4544,137 +3775,33 @@ function cn({
|
|
|
4544
3775
|
width: r === "custom" ? `${n}px` : x == null ? void 0 : x.width,
|
|
4545
3776
|
height: r === "custom" ? `${s}px` : x == null ? void 0 : x.height
|
|
4546
3777
|
}, w = r === "large-rectangle" || r === "skyscraper", k = r === "leaderboard" || r === "banner" || r === "mobile-banner";
|
|
4547
|
-
return
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
ref: N,
|
|
4551
|
-
onClick: v,
|
|
4552
|
-
className: h(
|
|
4553
|
-
"ad-component group relative overflow-hidden",
|
|
4554
|
-
"bg-white/80 backdrop-blur-sm border border-ad-border/60",
|
|
4555
|
-
"rounded-lg shadow-sm hover:shadow-md",
|
|
4556
|
-
"transition-all duration-200 hover:border-ad-primary/30",
|
|
4557
|
-
"animate-fade-in cursor-pointer",
|
|
4558
|
-
a && "pr-6",
|
|
4559
|
-
d
|
|
4560
|
-
),
|
|
4561
|
-
style: j,
|
|
4562
|
-
children: [
|
|
4563
|
-
a && /* @__PURE__ */ t.jsx(
|
|
4564
|
-
"button",
|
|
4565
|
-
{
|
|
4566
|
-
onClick: (S) => {
|
|
4567
|
-
S.stopPropagation(), b();
|
|
4568
|
-
},
|
|
4569
|
-
className: "absolute top-1 right-1 p-1 rounded bg-white/80 hover:bg-red-50 hover:text-red-500 transition-all z-50 shadow-sm",
|
|
4570
|
-
"aria-label": "Close ad",
|
|
4571
|
-
children: /* @__PURE__ */ t.jsx("svg", { className: "w-2.5 h-2.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M6 18L18 6M6 6l12 12" }) })
|
|
4572
|
-
}
|
|
4573
|
-
),
|
|
4574
|
-
/* @__PURE__ */ t.jsxs("div", { className: h("flex w-full h-full", w ? "flex-col" : "flex-row", "p-2 gap-2"), children: [
|
|
4575
|
-
e.content.image && /* @__PURE__ */ t.jsx(
|
|
4576
|
-
"div",
|
|
4577
|
-
{
|
|
4578
|
-
className: h(
|
|
4579
|
-
"flex-shrink-0 overflow-hidden rounded-md bg-gray-100",
|
|
4580
|
-
w ? "w-full h-32" : k ? "w-12 h-12" : "w-20 h-20"
|
|
4581
|
-
),
|
|
4582
|
-
children: /* @__PURE__ */ t.jsx(
|
|
4583
|
-
"img",
|
|
4584
|
-
{
|
|
4585
|
-
src: e.content.image,
|
|
4586
|
-
alt: e.content.title,
|
|
4587
|
-
className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-200",
|
|
4588
|
-
loading: "lazy"
|
|
4589
|
-
}
|
|
4590
|
-
)
|
|
4591
|
-
}
|
|
4592
|
-
),
|
|
4593
|
-
/* @__PURE__ */ t.jsxs("div", { className: h("flex-1 min-w-0 flex flex-col justify-center", w && "text-center"), children: [
|
|
4594
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-semibold text-ad-text-primary text-[10px] leading-tight line-clamp-2 group-hover:text-ad-primary transition-colors", children: e.content.title }),
|
|
4595
|
-
(r === "medium-rectangle" || r === "large-rectangle") && e.content.body && /* @__PURE__ */ t.jsx("p", { className: "text-[9px] text-ad-text-secondary line-clamp-2 leading-snug mt-0.5", children: e.content.body }),
|
|
4596
|
-
/* @__PURE__ */ t.jsxs("div", { className: h("flex items-center gap-1.5 mt-0.5", w ? "justify-center" : ""), children: [
|
|
4597
|
-
e.content.price && /* @__PURE__ */ t.jsx("span", { className: "text-xs font-bold text-ad-primary", children: e.content.price }),
|
|
4598
|
-
e.content.rating && /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-0.5", children: [
|
|
4599
|
-
/* @__PURE__ */ t.jsx("svg", { className: "w-2.5 h-2.5 text-amber-400", fill: "currentColor", viewBox: "0 0 20 20", children: /* @__PURE__ */ t.jsx("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }) }),
|
|
4600
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-[8px] font-medium text-ad-text-secondary", children: e.content.rating })
|
|
4601
|
-
] })
|
|
4602
|
-
] }),
|
|
4603
|
-
e.content.cta_text && !k && /* @__PURE__ */ t.jsxs("button", { className: "text-[9px] font-semibold text-ad-primary hover:underline mt-auto", children: [
|
|
4604
|
-
e.content.cta_text,
|
|
4605
|
-
" →"
|
|
4606
|
-
] })
|
|
4607
|
-
] })
|
|
4608
|
-
] }),
|
|
4609
|
-
/* @__PURE__ */ t.jsx("span", { className: "absolute bottom-1 right-1 z-[9999] text-[7px] font-semibold text-gray-600 bg-white border border-gray-300 px-1.5 py-0.5 rounded shadow-lg", children: "Ad" })
|
|
4610
|
-
]
|
|
4611
|
-
}
|
|
4612
|
-
);
|
|
3778
|
+
return t.jsxs("div", { ref: N, onClick: v, className: h("ad-component group relative overflow-hidden", "bg-white/80 backdrop-blur-sm border border-ad-border/60", "rounded-lg shadow-sm hover:shadow-md", "transition-all duration-200 hover:border-ad-primary/30", "animate-fade-in cursor-pointer", a && "pr-6", d), style: j, children: [a && t.jsx("button", { onClick: (S) => {
|
|
3779
|
+
S.stopPropagation(), b();
|
|
3780
|
+
}, className: "absolute top-1 right-1 p-1 rounded bg-white/80 hover:bg-red-50 hover:text-red-500 transition-all z-50 shadow-sm", "aria-label": "Close ad", children: t.jsx("svg", { className: "w-2.5 h-2.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M6 18L18 6M6 6l12 12" }) }) }), t.jsxs("div", { className: h("flex w-full h-full", w ? "flex-col" : "flex-row", "p-2 gap-2"), children: [e.content.image && t.jsx("div", { className: h("flex-shrink-0 overflow-hidden rounded-md bg-gray-100", w ? "w-full h-32" : k ? "w-12 h-12" : "w-20 h-20"), children: t.jsx("img", { src: e.content.image, alt: e.content.title, className: "w-full h-full object-cover group-hover:scale-105 transition-transform duration-200", loading: "lazy" }) }), t.jsxs("div", { className: h("flex-1 min-w-0 flex flex-col justify-center", w && "text-center"), children: [t.jsx("h4", { className: "font-semibold text-ad-text-primary text-[10px] leading-tight line-clamp-2 group-hover:text-ad-primary transition-colors", children: e.content.title }), (r === "medium-rectangle" || r === "large-rectangle") && e.content.body && t.jsx("p", { className: "text-[9px] text-ad-text-secondary line-clamp-2 leading-snug mt-0.5", children: e.content.body }), t.jsxs("div", { className: h("flex items-center gap-1.5 mt-0.5", w ? "justify-center" : ""), children: [e.content.price && t.jsx("span", { className: "text-xs font-bold text-ad-primary", children: e.content.price }), e.content.rating && t.jsxs("div", { className: "flex items-center gap-0.5", children: [t.jsx("svg", { className: "w-2.5 h-2.5 text-amber-400", fill: "currentColor", viewBox: "0 0 20 20", children: t.jsx("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }) }), t.jsx("span", { className: "text-[8px] font-medium text-ad-text-secondary", children: e.content.rating })] })] }), e.content.cta_text && !k && t.jsxs("button", { className: "text-[9px] font-semibold text-ad-primary hover:underline mt-auto", children: [e.content.cta_text, " →"] })] })] }), t.jsx("span", { className: "absolute bottom-1 right-1 z-[9999] text-[7px] font-semibold text-gray-600 bg-white border border-gray-300 px-1.5 py-0.5 rounded shadow-lg", children: "Ad" })] });
|
|
4613
3781
|
}
|
|
4614
|
-
function
|
|
4615
|
-
ads: e,
|
|
4616
|
-
size: r = "medium-rectangle",
|
|
4617
|
-
maxAds: n = 3,
|
|
4618
|
-
direction: s = "column",
|
|
4619
|
-
gap: l = 8,
|
|
4620
|
-
rotate: a = !1,
|
|
4621
|
-
rotateInterval: c = 1e4,
|
|
4622
|
-
className: i
|
|
4623
|
-
}) {
|
|
3782
|
+
function Fn({ ads: e, size: r = "medium-rectangle", maxAds: n = 3, direction: s = "column", gap: l = 8, rotate: a = !1, rotateInterval: c = 1e4, className: i }) {
|
|
4624
3783
|
const [d, m] = E(e.slice(0, n)), p = H(0);
|
|
4625
3784
|
return je(() => {
|
|
4626
|
-
if (!a || e.length <= n)
|
|
3785
|
+
if (!a || e.length <= n)
|
|
3786
|
+
return;
|
|
4627
3787
|
const f = setInterval(() => {
|
|
4628
3788
|
p.current = (p.current + 1) % e.length;
|
|
4629
3789
|
const y = p.current, N = [...e.slice(y, y + n), ...e.slice(0, Math.max(0, y + n - e.length))];
|
|
4630
3790
|
m(N.slice(0, n));
|
|
4631
3791
|
}, c);
|
|
4632
3792
|
return () => clearInterval(f);
|
|
4633
|
-
}, [e, n, a, c]),
|
|
4634
|
-
"div",
|
|
4635
|
-
{
|
|
4636
|
-
className: h(
|
|
4637
|
-
"flex",
|
|
4638
|
-
s === "row" ? "flex-row flex-wrap" : "flex-col",
|
|
4639
|
-
i
|
|
4640
|
-
),
|
|
4641
|
-
style: { gap: `${l}px` },
|
|
4642
|
-
children: d.map((f, y) => /* @__PURE__ */ t.jsx("div", { className: "animate-slide-up", style: { animationDelay: `${y * 30}ms` }, children: /* @__PURE__ */ t.jsx(cn, { ad: f, size: r }) }, f.id))
|
|
4643
|
-
}
|
|
4644
|
-
);
|
|
3793
|
+
}, [e, n, a, c]), t.jsx("div", { className: h("flex", s === "row" ? "flex-row flex-wrap" : "flex-col", i), style: { gap: `${l}px` }, children: d.map((f, y) => t.jsx("div", { className: "animate-slide-up", style: { animationDelay: `${y * 30}ms` }, children: t.jsx(sn, { ad: f, size: r }) }, f.id)) });
|
|
4645
3794
|
}
|
|
4646
|
-
function
|
|
4647
|
-
size: e = "medium-rectangle",
|
|
4648
|
-
width: r,
|
|
4649
|
-
height: n,
|
|
4650
|
-
message: s = "Advertisement",
|
|
4651
|
-
className: l
|
|
4652
|
-
}) {
|
|
3795
|
+
function $n({ size: e = "medium-rectangle", width: r, height: n, message: s = "Advertisement", className: l }) {
|
|
4653
3796
|
const a = e !== "custom" ? Pt[e] : void 0, c = {
|
|
4654
3797
|
width: e === "custom" ? `${r}px` : a == null ? void 0 : a.width,
|
|
4655
3798
|
height: e === "custom" ? `${n}px` : a == null ? void 0 : a.height
|
|
4656
3799
|
};
|
|
4657
|
-
return
|
|
4658
|
-
"
|
|
4659
|
-
|
|
4660
|
-
className: h(
|
|
4661
|
-
"relative inline-flex items-center justify-center overflow-hidden",
|
|
4662
|
-
"bg-gradient-to-br from-ad-background to-white",
|
|
4663
|
-
"border border-dashed border-ad-border/50 rounded-lg",
|
|
4664
|
-
"text-ad-text-muted text-[10px] font-medium",
|
|
4665
|
-
l
|
|
4666
|
-
),
|
|
4667
|
-
style: c,
|
|
4668
|
-
children: [
|
|
4669
|
-
/* @__PURE__ */ t.jsx("div", { className: "absolute inset-0 opacity-[0.02]", style: {
|
|
4670
|
-
backgroundImage: `url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='2' cy='2' r='1' fill='%2394a3b8'/%3E%3C/svg%3E")`
|
|
4671
|
-
} }),
|
|
4672
|
-
/* @__PURE__ */ t.jsx("span", { className: "relative z-10", children: s })
|
|
4673
|
-
]
|
|
4674
|
-
}
|
|
4675
|
-
);
|
|
3800
|
+
return t.jsxs("div", { className: h("relative inline-flex items-center justify-center overflow-hidden", "bg-gradient-to-br from-ad-background to-white", "border border-dashed border-ad-border/50 rounded-lg", "text-ad-text-muted text-[10px] font-medium", l), style: c, children: [t.jsx("div", { className: "absolute inset-0 opacity-[0.02]", style: {
|
|
3801
|
+
backgroundImage: `url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='2' cy='2' r='1' fill='%2394a3b8'/%3E%3C/svg%3E")`
|
|
3802
|
+
} }), t.jsx("span", { className: "relative z-10", children: s })] });
|
|
4676
3803
|
}
|
|
4677
|
-
const
|
|
3804
|
+
const zn = {
|
|
4678
3805
|
LEADERBOARD: "leaderboard",
|
|
4679
3806
|
BANNER: "banner",
|
|
4680
3807
|
MEDIUM_RECTANGLE: "medium-rectangle",
|
|
@@ -4684,7 +3811,7 @@ const Wn = {
|
|
|
4684
3811
|
SMALL_SQUARE: "small-square",
|
|
4685
3812
|
MOBILE_BANNER: "mobile-banner"
|
|
4686
3813
|
};
|
|
4687
|
-
function
|
|
3814
|
+
function We() {
|
|
4688
3815
|
return [
|
|
4689
3816
|
{
|
|
4690
3817
|
adId: "amazon_001",
|
|
@@ -4729,9 +3856,7 @@ function Ge() {
|
|
|
4729
3856
|
];
|
|
4730
3857
|
}
|
|
4731
3858
|
function It(e) {
|
|
4732
|
-
const r = e.reduce((i, d) => i + d.impressions, 0), n = e.reduce((i, d) => i + d.clicks, 0), s = e.reduce((i, d) => i + d.revenue, 0), l = r > 0 ? n / r * 100 : 0, a = e.reduce(
|
|
4733
|
-
(i, d) => d.ctr > i.ctr ? d : i
|
|
4734
|
-
), c = {};
|
|
3859
|
+
const r = e.reduce((i, d) => i + d.impressions, 0), n = e.reduce((i, d) => i + d.clicks, 0), s = e.reduce((i, d) => i + d.revenue, 0), l = r > 0 ? n / r * 100 : 0, a = e.reduce((i, d) => d.ctr > i.ctr ? d : i), c = {};
|
|
4735
3860
|
return e.forEach((i) => {
|
|
4736
3861
|
c[i.source] || (c[i.source] = { impressions: 0, clicks: 0, revenue: 0 }), c[i.source].impressions += i.impressions, c[i.source].clicks += i.clicks, c[i.source].revenue += i.revenue;
|
|
4737
3862
|
}), {
|
|
@@ -4749,22 +3874,14 @@ function V(e) {
|
|
|
4749
3874
|
function ke(e, r = 2) {
|
|
4750
3875
|
return `${e.toFixed(r)}%`;
|
|
4751
3876
|
}
|
|
4752
|
-
function
|
|
3877
|
+
function Te(e) {
|
|
4753
3878
|
return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(e);
|
|
4754
3879
|
}
|
|
4755
|
-
function
|
|
4756
|
-
|
|
4757
|
-
refreshInterval: r = 3e4,
|
|
4758
|
-
onRefresh: n,
|
|
4759
|
-
showRevenue: s = !0,
|
|
4760
|
-
showBySource: l = !0,
|
|
4761
|
-
className: a
|
|
4762
|
-
}) {
|
|
4763
|
-
const [c, i] = E(
|
|
4764
|
-
e || Ge()
|
|
4765
|
-
), [d, m] = E(!1), [p, f] = E(/* @__PURE__ */ new Date()), y = It(c);
|
|
3880
|
+
function Bn({ data: e, refreshInterval: r = 3e4, onRefresh: n, showRevenue: s = !0, showBySource: l = !0, className: a }) {
|
|
3881
|
+
const [c, i] = E(e || We()), [d, m] = E(!1), [p, f] = E(/* @__PURE__ */ new Date()), y = It(c);
|
|
4766
3882
|
je(() => {
|
|
4767
|
-
if (!n)
|
|
3883
|
+
if (!n)
|
|
3884
|
+
return;
|
|
4768
3885
|
const v = setInterval(async () => {
|
|
4769
3886
|
m(!0);
|
|
4770
3887
|
try {
|
|
@@ -4786,247 +3903,27 @@ function Gn({
|
|
|
4786
3903
|
m(!1);
|
|
4787
3904
|
}
|
|
4788
3905
|
} else
|
|
4789
|
-
i(
|
|
3906
|
+
i(We()), f(/* @__PURE__ */ new Date());
|
|
4790
3907
|
};
|
|
4791
|
-
return
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
/* @__PURE__ */ t.jsxs("p", { className: "text-sm text-ad-text-secondary flex items-center gap-2", children: [
|
|
4796
|
-
/* @__PURE__ */ t.jsx("span", { className: "w-2 h-2 rounded-full bg-green-500 animate-pulse" }),
|
|
4797
|
-
"Last updated: ",
|
|
4798
|
-
p.toLocaleTimeString()
|
|
4799
|
-
] })
|
|
4800
|
-
] }),
|
|
4801
|
-
/* @__PURE__ */ t.jsxs(
|
|
4802
|
-
"button",
|
|
4803
|
-
{
|
|
4804
|
-
onClick: N,
|
|
4805
|
-
disabled: d,
|
|
4806
|
-
className: h(
|
|
4807
|
-
"inline-flex items-center gap-2 px-4 py-2.5 rounded-xl font-medium text-sm",
|
|
4808
|
-
"bg-white/70 backdrop-blur-md border border-ad-border/50",
|
|
4809
|
-
"hover:bg-white hover:border-ad-primary/30",
|
|
4810
|
-
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
4811
|
-
"transition-all duration-200",
|
|
4812
|
-
"shadow-sm hover:shadow-glass",
|
|
4813
|
-
"active:scale-[0.98]"
|
|
4814
|
-
),
|
|
4815
|
-
children: [
|
|
4816
|
-
/* @__PURE__ */ t.jsx(
|
|
4817
|
-
"svg",
|
|
4818
|
-
{
|
|
4819
|
-
className: h("w-4 h-4", d && "animate-spin"),
|
|
4820
|
-
fill: "none",
|
|
4821
|
-
stroke: "currentColor",
|
|
4822
|
-
viewBox: "0 0 24 24",
|
|
4823
|
-
children: /* @__PURE__ */ t.jsx(
|
|
4824
|
-
"path",
|
|
4825
|
-
{
|
|
4826
|
-
strokeLinecap: "round",
|
|
4827
|
-
strokeLinejoin: "round",
|
|
4828
|
-
strokeWidth: 2,
|
|
4829
|
-
d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
|
|
4830
|
-
}
|
|
4831
|
-
)
|
|
4832
|
-
}
|
|
4833
|
-
),
|
|
4834
|
-
d ? "Refreshing..." : "Refresh"
|
|
4835
|
-
]
|
|
4836
|
-
}
|
|
4837
|
-
)
|
|
4838
|
-
] }),
|
|
4839
|
-
/* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [
|
|
4840
|
-
/* @__PURE__ */ t.jsx(
|
|
4841
|
-
Ee,
|
|
4842
|
-
{
|
|
4843
|
-
label: "Total Impressions",
|
|
4844
|
-
value: V(y.totalImpressions),
|
|
4845
|
-
icon: "👁️",
|
|
4846
|
-
trend: "+12.5%",
|
|
4847
|
-
trendUp: !0,
|
|
4848
|
-
color: "blue"
|
|
4849
|
-
}
|
|
4850
|
-
),
|
|
4851
|
-
/* @__PURE__ */ t.jsx(
|
|
4852
|
-
Ee,
|
|
4853
|
-
{
|
|
4854
|
-
label: "Total Clicks",
|
|
4855
|
-
value: V(y.totalClicks),
|
|
4856
|
-
icon: "👆",
|
|
4857
|
-
trend: "+8.3%",
|
|
4858
|
-
trendUp: !0,
|
|
4859
|
-
color: "purple"
|
|
4860
|
-
}
|
|
4861
|
-
),
|
|
4862
|
-
/* @__PURE__ */ t.jsx(
|
|
4863
|
-
Ee,
|
|
4864
|
-
{
|
|
4865
|
-
label: "Avg. CTR",
|
|
4866
|
-
value: ke(y.averageCtr),
|
|
4867
|
-
icon: "📊",
|
|
4868
|
-
trend: "+2.1%",
|
|
4869
|
-
trendUp: !0,
|
|
4870
|
-
color: "green"
|
|
4871
|
-
}
|
|
4872
|
-
),
|
|
4873
|
-
s && /* @__PURE__ */ t.jsx(
|
|
4874
|
-
Ee,
|
|
4875
|
-
{
|
|
4876
|
-
label: "Total Revenue",
|
|
4877
|
-
value: Pe(y.totalRevenue),
|
|
4878
|
-
icon: "💰",
|
|
4879
|
-
trend: "+15.7%",
|
|
4880
|
-
trendUp: !0,
|
|
4881
|
-
color: "amber"
|
|
4882
|
-
}
|
|
4883
|
-
)
|
|
4884
|
-
] }),
|
|
4885
|
-
/* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6", children: [
|
|
4886
|
-
/* @__PURE__ */ t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-6", children: [
|
|
4887
|
-
/* @__PURE__ */ t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary mb-4", children: "Top Performing Ads" }),
|
|
4888
|
-
/* @__PURE__ */ t.jsx("div", { className: "space-y-4", children: c.sort((v, b) => b.ctr - v.ctr).slice(0, 5).map((v, b) => /* @__PURE__ */ t.jsx(dn, { ad: v, rank: b + 1 }, v.adId)) })
|
|
4889
|
-
] }),
|
|
4890
|
-
l && /* @__PURE__ */ t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-6", children: [
|
|
4891
|
-
/* @__PURE__ */ t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary mb-4", children: "By Ad Source" }),
|
|
4892
|
-
/* @__PURE__ */ t.jsx("div", { className: "space-y-4", children: Object.entries(y.bySource).map(([v, b]) => {
|
|
4893
|
-
const x = b.impressions > 0 ? b.clicks / b.impressions * 100 : 0;
|
|
4894
|
-
return /* @__PURE__ */ t.jsx(
|
|
4895
|
-
un,
|
|
4896
|
-
{
|
|
4897
|
-
source: v,
|
|
4898
|
-
impressions: b.impressions,
|
|
4899
|
-
clicks: b.clicks,
|
|
4900
|
-
ctr: x,
|
|
4901
|
-
revenue: b.revenue
|
|
4902
|
-
},
|
|
4903
|
-
v
|
|
4904
|
-
);
|
|
4905
|
-
}) })
|
|
4906
|
-
] })
|
|
4907
|
-
] }),
|
|
4908
|
-
/* @__PURE__ */ t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass overflow-hidden", children: [
|
|
4909
|
-
/* @__PURE__ */ t.jsx("div", { className: "px-6 py-4 border-b border-ad-border/50 bg-white/40", children: /* @__PURE__ */ t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary", children: "All Ads Performance" }) }),
|
|
4910
|
-
/* @__PURE__ */ t.jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ t.jsxs("table", { className: "w-full", children: [
|
|
4911
|
-
/* @__PURE__ */ t.jsx("thead", { className: "bg-ad-background/50", children: /* @__PURE__ */ t.jsxs("tr", { children: [
|
|
4912
|
-
/* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-left text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Ad" }),
|
|
4913
|
-
/* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Impressions" }),
|
|
4914
|
-
/* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Clicks" }),
|
|
4915
|
-
/* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "CTR" }),
|
|
4916
|
-
s && /* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Revenue" }),
|
|
4917
|
-
/* @__PURE__ */ t.jsx("th", { className: "px-6 py-3 text-left text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Source" })
|
|
4918
|
-
] }) }),
|
|
4919
|
-
/* @__PURE__ */ t.jsx("tbody", { className: "divide-y divide-ad-border/30", children: c.map((v) => /* @__PURE__ */ t.jsxs("tr", { className: "hover:bg-ad-primary/5 transition-colors", children: [
|
|
4920
|
-
/* @__PURE__ */ t.jsxs("td", { className: "px-6 py-4 whitespace-nowrap", children: [
|
|
4921
|
-
/* @__PURE__ */ t.jsx("div", { className: "text-sm font-semibold text-ad-text-primary", children: v.adTitle }),
|
|
4922
|
-
/* @__PURE__ */ t.jsx("div", { className: "text-xs text-ad-text-muted", children: v.adId })
|
|
4923
|
-
] }),
|
|
4924
|
-
/* @__PURE__ */ t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium text-ad-text-primary", children: V(v.impressions) }),
|
|
4925
|
-
/* @__PURE__ */ t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium text-ad-text-primary", children: V(v.clicks) }),
|
|
4926
|
-
/* @__PURE__ */ t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right", children: /* @__PURE__ */ t.jsx(pn, { ctr: v.ctr }) }),
|
|
4927
|
-
s && /* @__PURE__ */ t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-semibold text-ad-text-primary", children: Pe(v.revenue) }),
|
|
4928
|
-
/* @__PURE__ */ t.jsx("td", { className: "px-6 py-4 whitespace-nowrap", children: /* @__PURE__ */ t.jsx(mn, { source: v.source }) })
|
|
4929
|
-
] }, v.adId)) })
|
|
4930
|
-
] }) })
|
|
4931
|
-
] })
|
|
4932
|
-
] });
|
|
3908
|
+
return t.jsxs("div", { className: h("w-full", a), children: [t.jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6", children: [t.jsxs("div", { children: [t.jsx("h2", { className: "text-2xl font-bold text-ad-text-primary", children: "Ad Analytics" }), t.jsxs("p", { className: "text-sm text-ad-text-secondary flex items-center gap-2", children: [t.jsx("span", { className: "w-2 h-2 rounded-full bg-green-500 animate-pulse" }), "Last updated: ", p.toLocaleTimeString()] })] }), t.jsxs("button", { onClick: N, disabled: d, className: h("inline-flex items-center gap-2 px-4 py-2.5 rounded-xl font-medium text-sm", "bg-white/70 backdrop-blur-md border border-ad-border/50", "hover:bg-white hover:border-ad-primary/30", "disabled:opacity-50 disabled:cursor-not-allowed", "transition-all duration-200", "shadow-sm hover:shadow-glass", "active:scale-[0.98]"), children: [t.jsx("svg", { className: h("w-4 h-4", d && "animate-spin"), fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" }) }), d ? "Refreshing..." : "Refresh"] })] }), t.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4 mb-6", children: [t.jsx(Ae, { label: "Total Impressions", value: V(y.totalImpressions), icon: "👁️", trend: "+12.5%", trendUp: !0, color: "blue" }), t.jsx(Ae, { label: "Total Clicks", value: V(y.totalClicks), icon: "👆", trend: "+8.3%", trendUp: !0, color: "purple" }), t.jsx(Ae, { label: "Avg. CTR", value: ke(y.averageCtr), icon: "📊", trend: "+2.1%", trendUp: !0, color: "green" }), s && t.jsx(Ae, { label: "Total Revenue", value: Te(y.totalRevenue), icon: "💰", trend: "+15.7%", trendUp: !0, color: "amber" })] }), t.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6", children: [t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-6", children: [t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary mb-4", children: "Top Performing Ads" }), t.jsx("div", { className: "space-y-4", children: c.sort((v, b) => b.ctr - v.ctr).slice(0, 5).map((v, b) => t.jsx(an, { ad: v, rank: b + 1 }, v.adId)) })] }), l && t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-6", children: [t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary mb-4", children: "By Ad Source" }), t.jsx("div", { className: "space-y-4", children: Object.entries(y.bySource).map(([v, b]) => {
|
|
3909
|
+
const x = b.impressions > 0 ? b.clicks / b.impressions * 100 : 0;
|
|
3910
|
+
return t.jsx(ln, { source: v, impressions: b.impressions, clicks: b.clicks, ctr: x, revenue: b.revenue }, v);
|
|
3911
|
+
}) })] })] }), t.jsxs("div", { className: "bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass overflow-hidden", children: [t.jsx("div", { className: "px-6 py-4 border-b border-ad-border/50 bg-white/40", children: t.jsx("h3", { className: "text-lg font-bold text-ad-text-primary", children: "All Ads Performance" }) }), t.jsx("div", { className: "overflow-x-auto", children: t.jsxs("table", { className: "w-full", children: [t.jsx("thead", { className: "bg-ad-background/50", children: t.jsxs("tr", { children: [t.jsx("th", { className: "px-6 py-3 text-left text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Ad" }), t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Impressions" }), t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Clicks" }), t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "CTR" }), s && t.jsx("th", { className: "px-6 py-3 text-right text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Revenue" }), t.jsx("th", { className: "px-6 py-3 text-left text-xs font-semibold text-ad-text-secondary uppercase tracking-wider", children: "Source" })] }) }), t.jsx("tbody", { className: "divide-y divide-ad-border/30", children: c.map((v) => t.jsxs("tr", { className: "hover:bg-ad-primary/5 transition-colors", children: [t.jsxs("td", { className: "px-6 py-4 whitespace-nowrap", children: [t.jsx("div", { className: "text-sm font-semibold text-ad-text-primary", children: v.adTitle }), t.jsx("div", { className: "text-xs text-ad-text-muted", children: v.adId })] }), t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium text-ad-text-primary", children: V(v.impressions) }), t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-medium text-ad-text-primary", children: V(v.clicks) }), t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right", children: t.jsx(cn, { ctr: v.ctr }) }), s && t.jsx("td", { className: "px-6 py-4 whitespace-nowrap text-right text-sm font-semibold text-ad-text-primary", children: Te(v.revenue) }), t.jsx("td", { className: "px-6 py-4 whitespace-nowrap", children: t.jsx(dn, { source: v.source }) })] }, v.adId)) })] }) })] })] });
|
|
4933
3912
|
}
|
|
4934
|
-
function
|
|
4935
|
-
label: e,
|
|
4936
|
-
value: r,
|
|
4937
|
-
icon: n,
|
|
4938
|
-
trend: s,
|
|
4939
|
-
trendUp: l,
|
|
4940
|
-
color: a
|
|
4941
|
-
}) {
|
|
3913
|
+
function Ae({ label: e, value: r, icon: n, trend: s, trendUp: l, color: a }) {
|
|
4942
3914
|
const c = {
|
|
4943
3915
|
blue: "from-blue-500/10 to-blue-600/5 border-blue-200/50",
|
|
4944
3916
|
purple: "from-purple-500/10 to-purple-600/5 border-purple-200/50",
|
|
4945
3917
|
green: "from-green-500/10 to-green-600/5 border-green-200/50",
|
|
4946
3918
|
amber: "from-amber-500/10 to-amber-600/5 border-amber-200/50"
|
|
4947
3919
|
};
|
|
4948
|
-
return
|
|
4949
|
-
"div",
|
|
4950
|
-
{
|
|
4951
|
-
className: h(
|
|
4952
|
-
"relative overflow-hidden rounded-2xl p-6",
|
|
4953
|
-
"bg-gradient-to-br border",
|
|
4954
|
-
"shadow-glass hover:shadow-glass-hover",
|
|
4955
|
-
"transition-all duration-200",
|
|
4956
|
-
"animate-fade-in",
|
|
4957
|
-
c[a]
|
|
4958
|
-
),
|
|
4959
|
-
children: /* @__PURE__ */ t.jsxs("div", { className: "relative z-10", children: [
|
|
4960
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center justify-between mb-3", children: [
|
|
4961
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm font-semibold text-ad-text-secondary", children: e }),
|
|
4962
|
-
/* @__PURE__ */ t.jsx("span", { className: "w-8 h-8 rounded-lg bg-white/60 backdrop-blur-sm flex items-center justify-center text-lg shadow-sm", children: n })
|
|
4963
|
-
] }),
|
|
4964
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [
|
|
4965
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-2xl font-bold text-ad-text-primary", children: r }),
|
|
4966
|
-
/* @__PURE__ */ t.jsxs(
|
|
4967
|
-
"span",
|
|
4968
|
-
{
|
|
4969
|
-
className: h(
|
|
4970
|
-
"text-xs font-semibold px-2 py-1 rounded-full",
|
|
4971
|
-
l ? "bg-green-100 text-green-700" : "bg-red-100 text-red-700"
|
|
4972
|
-
),
|
|
4973
|
-
children: [
|
|
4974
|
-
l ? "↑" : "↓",
|
|
4975
|
-
" ",
|
|
4976
|
-
s
|
|
4977
|
-
]
|
|
4978
|
-
}
|
|
4979
|
-
)
|
|
4980
|
-
] })
|
|
4981
|
-
] })
|
|
4982
|
-
}
|
|
4983
|
-
);
|
|
3920
|
+
return t.jsx("div", { className: h("relative overflow-hidden rounded-2xl p-6", "bg-gradient-to-br border", "shadow-glass hover:shadow-glass-hover", "transition-all duration-200", "animate-fade-in", c[a]), children: t.jsxs("div", { className: "relative z-10", children: [t.jsxs("div", { className: "flex items-center justify-between mb-3", children: [t.jsx("span", { className: "text-sm font-semibold text-ad-text-secondary", children: e }), t.jsx("span", { className: "w-8 h-8 rounded-lg bg-white/60 backdrop-blur-sm flex items-center justify-center text-lg shadow-sm", children: n })] }), t.jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [t.jsx("span", { className: "text-2xl font-bold text-ad-text-primary", children: r }), t.jsxs("span", { className: h("text-xs font-semibold px-2 py-1 rounded-full", l ? "bg-green-100 text-green-700" : "bg-red-100 text-red-700"), children: [l ? "↑" : "↓", " ", s] })] })] }) });
|
|
4984
3921
|
}
|
|
4985
|
-
function
|
|
3922
|
+
function an({ ad: e, rank: r }) {
|
|
4986
3923
|
const n = e.ctr / 10 * 100;
|
|
4987
|
-
return
|
|
4988
|
-
/* @__PURE__ */ t.jsx(
|
|
4989
|
-
"span",
|
|
4990
|
-
{
|
|
4991
|
-
className: h(
|
|
4992
|
-
"flex-shrink-0 w-8 h-8 rounded-xl flex items-center justify-center text-sm font-bold shadow-sm",
|
|
4993
|
-
r === 1 ? "bg-gradient-to-br from-amber-400 to-amber-500 text-white" : r === 2 ? "bg-gradient-to-br from-gray-300 to-gray-400 text-white" : r === 3 ? "bg-gradient-to-br from-amber-600 to-amber-700 text-white" : "bg-gray-100 text-gray-600"
|
|
4994
|
-
),
|
|
4995
|
-
children: r
|
|
4996
|
-
}
|
|
4997
|
-
),
|
|
4998
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
4999
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
5000
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm font-semibold text-ad-text-primary truncate", children: e.adTitle }),
|
|
5001
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm font-bold text-ad-primary ml-2", children: ke(e.ctr) })
|
|
5002
|
-
] }),
|
|
5003
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-full bg-gray-100 rounded-full h-2 overflow-hidden", children: /* @__PURE__ */ t.jsx(
|
|
5004
|
-
"div",
|
|
5005
|
-
{
|
|
5006
|
-
className: "h-full bg-gradient-to-r from-ad-primary to-ad-primaryLight rounded-full transition-all duration-500",
|
|
5007
|
-
style: { width: `${Math.min(n, 100)}%` }
|
|
5008
|
-
}
|
|
5009
|
-
) }),
|
|
5010
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-4 mt-2 text-xs text-ad-text-muted", children: [
|
|
5011
|
-
/* @__PURE__ */ t.jsxs("span", { className: "font-medium", children: [
|
|
5012
|
-
V(e.impressions),
|
|
5013
|
-
" impressions"
|
|
5014
|
-
] }),
|
|
5015
|
-
/* @__PURE__ */ t.jsxs("span", { className: "font-medium", children: [
|
|
5016
|
-
V(e.clicks),
|
|
5017
|
-
" clicks"
|
|
5018
|
-
] }),
|
|
5019
|
-
e.revenue > 0 && /* @__PURE__ */ t.jsx("span", { className: "font-semibold text-ad-primary", children: Pe(e.revenue) })
|
|
5020
|
-
] })
|
|
5021
|
-
] })
|
|
5022
|
-
] });
|
|
3924
|
+
return t.jsxs("div", { className: "flex items-center gap-4 animate-slide-up", children: [t.jsx("span", { className: h("flex-shrink-0 w-8 h-8 rounded-xl flex items-center justify-center text-sm font-bold shadow-sm", r === 1 ? "bg-gradient-to-br from-amber-400 to-amber-500 text-white" : r === 2 ? "bg-gradient-to-br from-gray-300 to-gray-400 text-white" : r === 3 ? "bg-gradient-to-br from-amber-600 to-amber-700 text-white" : "bg-gray-100 text-gray-600"), children: r }), t.jsxs("div", { className: "flex-1 min-w-0", children: [t.jsxs("div", { className: "flex items-center justify-between mb-2", children: [t.jsx("span", { className: "text-sm font-semibold text-ad-text-primary truncate", children: e.adTitle }), t.jsx("span", { className: "text-sm font-bold text-ad-primary ml-2", children: ke(e.ctr) })] }), t.jsx("div", { className: "w-full bg-gray-100 rounded-full h-2 overflow-hidden", children: t.jsx("div", { className: "h-full bg-gradient-to-r from-ad-primary to-ad-primaryLight rounded-full transition-all duration-500", style: { width: `${Math.min(n, 100)}%` } }) }), t.jsxs("div", { className: "flex items-center gap-4 mt-2 text-xs text-ad-text-muted", children: [t.jsxs("span", { className: "font-medium", children: [V(e.impressions), " impressions"] }), t.jsxs("span", { className: "font-medium", children: [V(e.clicks), " clicks"] }), e.revenue > 0 && t.jsx("span", { className: "font-semibold text-ad-primary", children: Te(e.revenue) })] })] })] });
|
|
5023
3925
|
}
|
|
5024
|
-
function
|
|
5025
|
-
source: e,
|
|
5026
|
-
impressions: r,
|
|
5027
|
-
clicks: n,
|
|
5028
|
-
ctr: s
|
|
5029
|
-
}) {
|
|
3926
|
+
function ln({ source: e, impressions: r, clicks: n, ctr: s }) {
|
|
5030
3927
|
const a = {
|
|
5031
3928
|
internal: {
|
|
5032
3929
|
label: "自营",
|
|
@@ -5048,39 +3945,13 @@ function un({
|
|
|
5048
3945
|
gradient: "from-gray-500 to-gray-600",
|
|
5049
3946
|
textColor: "text-white"
|
|
5050
3947
|
};
|
|
5051
|
-
return
|
|
5052
|
-
/* @__PURE__ */ t.jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ t.jsx(
|
|
5053
|
-
"span",
|
|
5054
|
-
{
|
|
5055
|
-
className: h(
|
|
5056
|
-
"px-3 py-1.5 rounded-lg text-xs font-bold shadow-sm",
|
|
5057
|
-
"bg-gradient-to-r",
|
|
5058
|
-
a.gradient,
|
|
5059
|
-
a.textColor
|
|
5060
|
-
),
|
|
5061
|
-
children: a.label
|
|
5062
|
-
}
|
|
5063
|
-
) }),
|
|
5064
|
-
/* @__PURE__ */ t.jsxs("div", { className: "text-right", children: [
|
|
5065
|
-
/* @__PURE__ */ t.jsxs("span", { className: "text-sm font-bold text-ad-text-primary", children: [
|
|
5066
|
-
ke(s),
|
|
5067
|
-
" CTR"
|
|
5068
|
-
] }),
|
|
5069
|
-
/* @__PURE__ */ t.jsxs("span", { className: "text-xs text-ad-text-muted ml-2", children: [
|
|
5070
|
-
"(",
|
|
5071
|
-
V(n),
|
|
5072
|
-
"/",
|
|
5073
|
-
V(r),
|
|
5074
|
-
")"
|
|
5075
|
-
] })
|
|
5076
|
-
] })
|
|
5077
|
-
] });
|
|
3948
|
+
return t.jsxs("div", { className: "flex items-center justify-between p-3 rounded-xl bg-ad-background/30 hover:bg-ad-background/50 transition-colors", children: [t.jsx("div", { className: "flex items-center gap-3", children: t.jsx("span", { className: h("px-3 py-1.5 rounded-lg text-xs font-bold shadow-sm", "bg-gradient-to-r", a.gradient, a.textColor), children: a.label }) }), t.jsxs("div", { className: "text-right", children: [t.jsxs("span", { className: "text-sm font-bold text-ad-text-primary", children: [ke(s), " CTR"] }), t.jsxs("span", { className: "text-xs text-ad-text-muted ml-2", children: ["(", V(n), "/", V(r), ")"] })] })] });
|
|
5078
3949
|
}
|
|
5079
|
-
function
|
|
3950
|
+
function cn({ ctr: e }) {
|
|
5080
3951
|
const r = () => e >= 5 ? "bg-green-100 text-green-700 border-green-200" : e >= 3 ? "bg-blue-100 text-blue-700 border-blue-200" : e >= 1 ? "bg-yellow-100 text-yellow-700 border-yellow-200" : "bg-red-100 text-red-700 border-red-200";
|
|
5081
|
-
return
|
|
3952
|
+
return t.jsx("span", { className: h("inline-flex px-3 py-1 rounded-full text-xs font-bold border", r()), children: ke(e) });
|
|
5082
3953
|
}
|
|
5083
|
-
function
|
|
3954
|
+
function dn({ source: e }) {
|
|
5084
3955
|
const r = {
|
|
5085
3956
|
internal: { label: "自营", gradient: "from-blue-500 to-blue-600" },
|
|
5086
3957
|
affiliate: { label: "联盟", gradient: "from-purple-500 to-purple-600" },
|
|
@@ -5089,69 +3960,25 @@ function mn({ source: e }) {
|
|
|
5089
3960
|
label: e,
|
|
5090
3961
|
gradient: "from-gray-500 to-gray-600"
|
|
5091
3962
|
};
|
|
5092
|
-
return
|
|
3963
|
+
return t.jsx("span", { className: h("inline-flex px-3 py-1 rounded-lg text-xs font-bold text-white bg-gradient-to-r", s), children: n });
|
|
5093
3964
|
}
|
|
5094
|
-
function
|
|
5095
|
-
const n = e ||
|
|
5096
|
-
return
|
|
5097
|
-
"bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-5",
|
|
5098
|
-
r
|
|
5099
|
-
), children: /* @__PURE__ */ t.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
5100
|
-
/* @__PURE__ */ t.jsx(Re, { label: "Impressions", value: V(s.totalImpressions), color: "blue" }),
|
|
5101
|
-
/* @__PURE__ */ t.jsx(Re, { label: "Clicks", value: V(s.totalClicks), color: "purple" }),
|
|
5102
|
-
/* @__PURE__ */ t.jsx(Re, { label: "CTR", value: ke(s.averageCtr), color: "green" }),
|
|
5103
|
-
/* @__PURE__ */ t.jsx(Re, { label: "Revenue", value: Pe(s.totalRevenue), color: "amber" })
|
|
5104
|
-
] }) });
|
|
3965
|
+
function Un({ data: e, className: r }) {
|
|
3966
|
+
const n = e || We(), s = It(n);
|
|
3967
|
+
return t.jsx("div", { className: h("bg-white/70 backdrop-blur-md rounded-2xl border border-ad-border/50 shadow-glass p-5", r), children: t.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [t.jsx(Ee, { label: "Impressions", value: V(s.totalImpressions), color: "blue" }), t.jsx(Ee, { label: "Clicks", value: V(s.totalClicks), color: "purple" }), t.jsx(Ee, { label: "CTR", value: ke(s.averageCtr), color: "green" }), t.jsx(Ee, { label: "Revenue", value: Te(s.totalRevenue), color: "amber" })] }) });
|
|
5105
3968
|
}
|
|
5106
|
-
function
|
|
3969
|
+
function Ee({ label: e, value: r, color: n }) {
|
|
5107
3970
|
const s = {
|
|
5108
3971
|
blue: "text-blue-600",
|
|
5109
3972
|
purple: "text-purple-600",
|
|
5110
3973
|
green: "text-green-600",
|
|
5111
3974
|
amber: "text-amber-600"
|
|
5112
3975
|
};
|
|
5113
|
-
return
|
|
5114
|
-
/* @__PURE__ */ t.jsx("p", { className: "text-xs font-medium text-ad-text-muted uppercase tracking-wide", children: e }),
|
|
5115
|
-
/* @__PURE__ */ t.jsx("p", { className: h("text-lg font-bold", s[n]), children: r })
|
|
5116
|
-
] });
|
|
3976
|
+
return t.jsxs("div", { children: [t.jsx("p", { className: "text-xs font-medium text-ad-text-muted uppercase tracking-wide", children: e }), t.jsx("p", { className: h("text-lg font-bold", s[n]), children: r })] });
|
|
5117
3977
|
}
|
|
5118
|
-
function
|
|
5119
|
-
className: e
|
|
5120
|
-
}) {
|
|
5121
|
-
return /* @__PURE__ */ t.jsxs(
|
|
5122
|
-
"div",
|
|
5123
|
-
{
|
|
5124
|
-
className: h(
|
|
5125
|
-
"flex items-center justify-center p-4",
|
|
5126
|
-
"bg-gray-50 border border-gray-200 rounded-lg",
|
|
5127
|
-
"text-gray-500 text-sm",
|
|
5128
|
-
e
|
|
5129
|
-
),
|
|
5130
|
-
children: [
|
|
5131
|
-
/* @__PURE__ */ t.jsx(
|
|
5132
|
-
"svg",
|
|
5133
|
-
{
|
|
5134
|
-
className: "w-5 h-5 mr-2 text-gray-400",
|
|
5135
|
-
fill: "none",
|
|
5136
|
-
stroke: "currentColor",
|
|
5137
|
-
viewBox: "0 0 24 24",
|
|
5138
|
-
children: /* @__PURE__ */ t.jsx(
|
|
5139
|
-
"path",
|
|
5140
|
-
{
|
|
5141
|
-
strokeLinecap: "round",
|
|
5142
|
-
strokeLinejoin: "round",
|
|
5143
|
-
strokeWidth: 2,
|
|
5144
|
-
d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
5145
|
-
}
|
|
5146
|
-
)
|
|
5147
|
-
}
|
|
5148
|
-
),
|
|
5149
|
-
/* @__PURE__ */ t.jsx("span", { children: "Ad temporarily unavailable" })
|
|
5150
|
-
]
|
|
5151
|
-
}
|
|
5152
|
-
);
|
|
3978
|
+
function un({ className: e }) {
|
|
3979
|
+
return t.jsxs("div", { className: h("flex items-center justify-center p-4", "bg-gray-50 border border-gray-200 rounded-lg", "text-gray-500 text-sm", e), children: [t.jsx("svg", { className: "w-5 h-5 mr-2 text-gray-400", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: t.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }), t.jsx("span", { children: "Ad temporarily unavailable" })] });
|
|
5153
3980
|
}
|
|
5154
|
-
class
|
|
3981
|
+
class pn extends dr {
|
|
5155
3982
|
constructor(r) {
|
|
5156
3983
|
super(r), this.state = { hasError: !1 };
|
|
5157
3984
|
}
|
|
@@ -5170,170 +3997,48 @@ class gn extends pr {
|
|
|
5170
3997
|
return typeof r == "function" ? r(this.state.error, {
|
|
5171
3998
|
componentStack: ""
|
|
5172
3999
|
// ErrorInfo is not available here
|
|
5173
|
-
}) : r ||
|
|
4000
|
+
}) : r || t.jsx(un, { error: this.state.error, className: this.props.className });
|
|
5174
4001
|
}
|
|
5175
4002
|
return this.props.children;
|
|
5176
4003
|
}
|
|
5177
4004
|
}
|
|
5178
|
-
function
|
|
5179
|
-
const n = (s) =>
|
|
4005
|
+
function Wn(e, r) {
|
|
4006
|
+
const n = (s) => t.jsx(pn, { ...r, children: t.jsx(e, { ...s }) });
|
|
5180
4007
|
return n.displayName = `withAdErrorBoundary(${e.displayName || e.name})`, n;
|
|
5181
4008
|
}
|
|
5182
|
-
function
|
|
5183
|
-
return !e || s ? null :
|
|
5184
|
-
"div",
|
|
5185
|
-
{
|
|
5186
|
-
className: h(
|
|
5187
|
-
"flex items-center justify-between p-3",
|
|
5188
|
-
"bg-red-50 border border-red-100 rounded-lg",
|
|
5189
|
-
"text-red-700 text-sm",
|
|
5190
|
-
n
|
|
5191
|
-
),
|
|
5192
|
-
children: [
|
|
5193
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center", children: [
|
|
5194
|
-
/* @__PURE__ */ t.jsx(
|
|
5195
|
-
"svg",
|
|
5196
|
-
{
|
|
5197
|
-
className: "w-4 h-4 mr-2 text-red-500",
|
|
5198
|
-
fill: "currentColor",
|
|
5199
|
-
viewBox: "0 0 20 20",
|
|
5200
|
-
children: /* @__PURE__ */ t.jsx(
|
|
5201
|
-
"path",
|
|
5202
|
-
{
|
|
5203
|
-
fillRule: "evenodd",
|
|
5204
|
-
d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",
|
|
5205
|
-
clipRule: "evenodd"
|
|
5206
|
-
}
|
|
5207
|
-
)
|
|
5208
|
-
}
|
|
5209
|
-
),
|
|
5210
|
-
/* @__PURE__ */ t.jsx("span", { children: "Failed to load ads" })
|
|
5211
|
-
] }),
|
|
5212
|
-
r && /* @__PURE__ */ t.jsx(
|
|
5213
|
-
"button",
|
|
5214
|
-
{
|
|
5215
|
-
onClick: r,
|
|
5216
|
-
className: "ml-4 px-3 py-1 text-sm font-medium text-red-700 bg-red-100 hover:bg-red-200 rounded transition-colors",
|
|
5217
|
-
children: "Retry"
|
|
5218
|
-
}
|
|
5219
|
-
)
|
|
5220
|
-
]
|
|
5221
|
-
}
|
|
5222
|
-
);
|
|
4009
|
+
function Gn({ error: e, onRetry: r, className: n, silent: s = !1 }) {
|
|
4010
|
+
return !e || s ? null : t.jsxs("div", { className: h("flex items-center justify-between p-3", "bg-red-50 border border-red-100 rounded-lg", "text-red-700 text-sm", n), children: [t.jsxs("div", { className: "flex items-center", children: [t.jsx("svg", { className: "w-4 h-4 mr-2 text-red-500", fill: "currentColor", viewBox: "0 0 20 20", children: t.jsx("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z", clipRule: "evenodd" }) }), t.jsx("span", { children: "Failed to load ads" })] }), r && t.jsx("button", { onClick: r, className: "ml-4 px-3 py-1 text-sm font-medium text-red-700 bg-red-100 hover:bg-red-200 rounded transition-colors", children: "Retry" })] });
|
|
5223
4011
|
}
|
|
5224
4012
|
const ce = "ad-shimmer animate-shimmer";
|
|
5225
|
-
function
|
|
5226
|
-
variant: e = "action_card",
|
|
5227
|
-
layout: r = "horizontal",
|
|
5228
|
-
className: n,
|
|
5229
|
-
count: s = 1
|
|
5230
|
-
}) {
|
|
4013
|
+
function qn({ variant: e = "action_card", layout: r = "horizontal", className: n, count: s = 1 }) {
|
|
5231
4014
|
const l = Array.from({ length: s }, (a, c) => c);
|
|
5232
|
-
return e === "action_card" ?
|
|
4015
|
+
return e === "action_card" ? t.jsx("div", { className: h("space-y-3", n), children: l.map((a) => t.jsx(mn, { layout: r }, a)) }) : e === "suffix" ? t.jsx("div", { className: h("space-y-2", n), children: l.map((a) => t.jsx(fn, {}, a)) }) : e === "followup" ? t.jsx("div", { className: h("flex flex-wrap gap-2", n), children: l.map((a) => t.jsx(gn, {}, a)) }) : t.jsx("div", { className: h("space-y-2", n), children: l.map((a) => t.jsx(hn, {}, a)) });
|
|
5233
4016
|
}
|
|
5234
|
-
function
|
|
5235
|
-
return e === "compact" ?
|
|
5236
|
-
/* @__PURE__ */ t.jsx("div", { className: "aspect-square rounded mb-3" }),
|
|
5237
|
-
/* @__PURE__ */ t.jsx("div", { className: "h-4 rounded w-3/4 mb-2" }),
|
|
5238
|
-
/* @__PURE__ */ t.jsx("div", { className: "h-3 rounded w-1/2" })
|
|
5239
|
-
] }) : /* @__PURE__ */ t.jsxs("div", { className: h(ce, "rounded-lg p-4 w-full flex gap-4"), children: [
|
|
5240
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-20 h-20 rounded flex-shrink-0" }),
|
|
5241
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex-1 space-y-2", children: [
|
|
5242
|
-
/* @__PURE__ */ t.jsx("div", { className: "h-4 rounded w-3/4" }),
|
|
5243
|
-
/* @__PURE__ */ t.jsx("div", { className: "h-3 rounded w-1/2" }),
|
|
5244
|
-
/* @__PURE__ */ t.jsx("div", { className: "h-6 rounded w-20" })
|
|
5245
|
-
] })
|
|
5246
|
-
] });
|
|
4017
|
+
function mn({ layout: e }) {
|
|
4018
|
+
return e === "compact" ? t.jsx("div", { className: h(ce, "rounded-lg p-3 h-16 w-full") }) : e === "vertical" ? t.jsxs("div", { className: h(ce, "rounded-lg p-4 w-full max-w-xs mx-auto"), children: [t.jsx("div", { className: "aspect-square rounded mb-3" }), t.jsx("div", { className: "h-4 rounded w-3/4 mb-2" }), t.jsx("div", { className: "h-3 rounded w-1/2" })] }) : t.jsxs("div", { className: h(ce, "rounded-lg p-4 w-full flex gap-4"), children: [t.jsx("div", { className: "w-20 h-20 rounded flex-shrink-0" }), t.jsxs("div", { className: "flex-1 space-y-2", children: [t.jsx("div", { className: "h-4 rounded w-3/4" }), t.jsx("div", { className: "h-3 rounded w-1/2" }), t.jsx("div", { className: "h-6 rounded w-20" })] })] });
|
|
5247
4019
|
}
|
|
5248
|
-
function
|
|
5249
|
-
return
|
|
4020
|
+
function fn() {
|
|
4021
|
+
return t.jsx("div", { className: h(ce, "mt-4 p-3 rounded-lg h-12 w-full") });
|
|
5250
4022
|
}
|
|
5251
|
-
function
|
|
5252
|
-
return
|
|
4023
|
+
function gn() {
|
|
4024
|
+
return t.jsx("div", { className: h(ce, "h-10 px-4 rounded-full w-32") });
|
|
5253
4025
|
}
|
|
5254
|
-
function
|
|
5255
|
-
return
|
|
5256
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-8 h-8 rounded flex-shrink-0" }),
|
|
5257
|
-
/* @__PURE__ */ t.jsx("div", { className: "flex-1 h-4 rounded w-40" }),
|
|
5258
|
-
/* @__PURE__ */ t.jsx("div", { className: "w-3.5 h-3.5 rounded flex-shrink-0" })
|
|
5259
|
-
] });
|
|
4026
|
+
function hn() {
|
|
4027
|
+
return t.jsxs("div", { className: h(ce, "flex items-center gap-3 py-2 px-3 rounded-md w-full"), children: [t.jsx("div", { className: "w-8 h-8 rounded flex-shrink-0" }), t.jsx("div", { className: "flex-1 h-4 rounded w-40" }), t.jsx("div", { className: "w-3.5 h-3.5 rounded flex-shrink-0" })] });
|
|
5260
4028
|
}
|
|
5261
|
-
function
|
|
4029
|
+
function Vn({ size: e = "md", className: r }) {
|
|
5262
4030
|
const n = {
|
|
5263
4031
|
sm: "w-4 h-4",
|
|
5264
4032
|
md: "w-6 h-6",
|
|
5265
4033
|
lg: "w-8 h-8"
|
|
5266
4034
|
};
|
|
5267
|
-
return
|
|
5268
|
-
"svg",
|
|
5269
|
-
{
|
|
5270
|
-
className: h(n[e], "animate-spin text-ad-primary"),
|
|
5271
|
-
fill: "none",
|
|
5272
|
-
viewBox: "0 0 24 24",
|
|
5273
|
-
children: [
|
|
5274
|
-
/* @__PURE__ */ t.jsx(
|
|
5275
|
-
"circle",
|
|
5276
|
-
{
|
|
5277
|
-
className: "opacity-25",
|
|
5278
|
-
cx: "12",
|
|
5279
|
-
cy: "12",
|
|
5280
|
-
r: "10",
|
|
5281
|
-
stroke: "currentColor",
|
|
5282
|
-
strokeWidth: "4"
|
|
5283
|
-
}
|
|
5284
|
-
),
|
|
5285
|
-
/* @__PURE__ */ t.jsx(
|
|
5286
|
-
"path",
|
|
5287
|
-
{
|
|
5288
|
-
className: "opacity-75",
|
|
5289
|
-
fill: "currentColor",
|
|
5290
|
-
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
5291
|
-
}
|
|
5292
|
-
)
|
|
5293
|
-
]
|
|
5294
|
-
}
|
|
5295
|
-
) });
|
|
4035
|
+
return t.jsx("div", { className: h("inline-flex items-center", r), children: t.jsxs("svg", { className: h(n[e], "animate-spin text-ad-primary"), fill: "none", viewBox: "0 0 24 24", children: [t.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), t.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }) });
|
|
5296
4036
|
}
|
|
5297
|
-
function
|
|
5298
|
-
return
|
|
5299
|
-
/* @__PURE__ */ t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "0ms" } }),
|
|
5300
|
-
/* @__PURE__ */ t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "150ms" } }),
|
|
5301
|
-
/* @__PURE__ */ t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "300ms" } })
|
|
5302
|
-
] });
|
|
4037
|
+
function Hn({ className: e }) {
|
|
4038
|
+
return t.jsxs("div", { className: h("inline-flex items-center gap-1", e), children: [t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "0ms" } }), t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "150ms" } }), t.jsx("span", { className: "w-1.5 h-1.5 bg-ad-primary rounded-full animate-bounce", style: { animationDelay: "300ms" } })] });
|
|
5303
4039
|
}
|
|
5304
|
-
function
|
|
5305
|
-
return
|
|
5306
|
-
/* @__PURE__ */ t.jsxs(
|
|
5307
|
-
"svg",
|
|
5308
|
-
{
|
|
5309
|
-
className: "w-12 h-12 animate-spin text-ad-primary mb-4",
|
|
5310
|
-
fill: "none",
|
|
5311
|
-
viewBox: "0 0 24 24",
|
|
5312
|
-
children: [
|
|
5313
|
-
/* @__PURE__ */ t.jsx(
|
|
5314
|
-
"circle",
|
|
5315
|
-
{
|
|
5316
|
-
className: "opacity-25",
|
|
5317
|
-
cx: "12",
|
|
5318
|
-
cy: "12",
|
|
5319
|
-
r: "10",
|
|
5320
|
-
stroke: "currentColor",
|
|
5321
|
-
strokeWidth: "4"
|
|
5322
|
-
}
|
|
5323
|
-
),
|
|
5324
|
-
/* @__PURE__ */ t.jsx(
|
|
5325
|
-
"path",
|
|
5326
|
-
{
|
|
5327
|
-
className: "opacity-75",
|
|
5328
|
-
fill: "currentColor",
|
|
5329
|
-
d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
|
|
5330
|
-
}
|
|
5331
|
-
)
|
|
5332
|
-
]
|
|
5333
|
-
}
|
|
5334
|
-
),
|
|
5335
|
-
/* @__PURE__ */ t.jsx("p", { className: "text-gray-600", children: e })
|
|
5336
|
-
] });
|
|
4040
|
+
function Jn({ message: e = "Loading...", className: r }) {
|
|
4041
|
+
return t.jsxs("div", { className: h("flex flex-col items-center justify-center min-h-screen", r), children: [t.jsxs("svg", { className: "w-12 h-12 animate-spin text-ad-primary mb-4", fill: "none", viewBox: "0 0 24 24", children: [t.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), t.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })] }), t.jsx("p", { className: "text-gray-600", children: e })] });
|
|
5337
4042
|
}
|
|
5338
4043
|
const we = [
|
|
5339
4044
|
// === Electronics ===
|
|
@@ -5727,7 +4432,7 @@ const we = [
|
|
|
5727
4432
|
category: "Software"
|
|
5728
4433
|
}
|
|
5729
4434
|
}
|
|
5730
|
-
],
|
|
4435
|
+
], Yn = [
|
|
5731
4436
|
{
|
|
5732
4437
|
adId: "sony_wh1000xm5",
|
|
5733
4438
|
adTitle: "Sony WH-1000XM5 Wireless Headphones",
|
|
@@ -5817,74 +4522,75 @@ const we = [
|
|
|
5817
4522
|
// 25 minutes ago
|
|
5818
4523
|
}
|
|
5819
4524
|
];
|
|
5820
|
-
function
|
|
4525
|
+
function Kn(e) {
|
|
5821
4526
|
return we.filter((r) => {
|
|
5822
4527
|
var n;
|
|
5823
4528
|
return ((n = r.metadata) == null ? void 0 : n.category) === e;
|
|
5824
4529
|
});
|
|
5825
4530
|
}
|
|
5826
|
-
function
|
|
4531
|
+
function Xn(e) {
|
|
5827
4532
|
return we.filter((r) => r.source === e);
|
|
5828
4533
|
}
|
|
5829
|
-
function
|
|
4534
|
+
function Zn(e = 3) {
|
|
5830
4535
|
return [...we].sort(() => Math.random() - 0.5).slice(0, Math.min(e, we.length));
|
|
5831
4536
|
}
|
|
5832
|
-
function
|
|
4537
|
+
function Qn(e) {
|
|
5833
4538
|
return we.find((r) => r.id === e);
|
|
5834
4539
|
}
|
|
5835
4540
|
export {
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
|
|
5847
|
-
|
|
5848
|
-
|
|
5849
|
-
|
|
5850
|
-
|
|
5851
|
-
|
|
5852
|
-
|
|
5853
|
-
|
|
5854
|
-
|
|
4541
|
+
Rn as ActionCardAd,
|
|
4542
|
+
Bn as AdAnalyticsDashboard,
|
|
4543
|
+
pn as AdErrorBoundary,
|
|
4544
|
+
Gn as AdErrorHandler,
|
|
4545
|
+
br as AdLogger,
|
|
4546
|
+
$n as AdPlaceholder,
|
|
4547
|
+
Sn as AdProvider,
|
|
4548
|
+
qn as AdSkeleton,
|
|
4549
|
+
Hn as DotsLoading,
|
|
4550
|
+
en as FollowUpAd,
|
|
4551
|
+
In as FollowUpAdMixed,
|
|
4552
|
+
Jn as FullPageLoading,
|
|
4553
|
+
zn as IABSizePresets,
|
|
4554
|
+
Vn as InlineLoading,
|
|
4555
|
+
ct as IntentType,
|
|
4556
|
+
Mn as LeadGenAd,
|
|
4557
|
+
Ln as LeadGenAdCompact,
|
|
4558
|
+
On as LeadGenAdMinimal,
|
|
4559
|
+
Un as MiniDashboard,
|
|
5855
4560
|
Dn as SourceListWithAds,
|
|
5856
|
-
|
|
5857
|
-
|
|
5858
|
-
|
|
4561
|
+
tn as SponsoredSource,
|
|
4562
|
+
sn as StaticAd,
|
|
4563
|
+
Fn as StaticAdContainer,
|
|
5859
4564
|
Rt as SuffixAd,
|
|
5860
|
-
|
|
5861
|
-
|
|
5862
|
-
|
|
5863
|
-
|
|
5864
|
-
|
|
4565
|
+
Tn as SuffixAdInline,
|
|
4566
|
+
Pn as SuffixAdMinimal,
|
|
4567
|
+
Qr as TextWeaver,
|
|
4568
|
+
wn as adaptAdToKoahAd,
|
|
4569
|
+
gr as checkFrequencyControl,
|
|
5865
4570
|
h as cn,
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
Qn as
|
|
5869
|
-
|
|
5870
|
-
|
|
4571
|
+
En as createLogger,
|
|
4572
|
+
_n as fetchAds,
|
|
4573
|
+
Qn as getAdById,
|
|
4574
|
+
Kn as getAdsByCategory,
|
|
4575
|
+
Xn as getAdsBySource,
|
|
4576
|
+
Zn as getRandomAds,
|
|
5871
4577
|
jt as getSessionId,
|
|
5872
4578
|
vt as hashUserId,
|
|
5873
4579
|
we as mockAds,
|
|
5874
|
-
|
|
4580
|
+
Yn as mockAnalyticsData,
|
|
5875
4581
|
wt as recordImpression,
|
|
5876
|
-
|
|
5877
|
-
|
|
4582
|
+
Re as textWeaver,
|
|
4583
|
+
Ge as trackClick,
|
|
5878
4584
|
yt as trackImpression,
|
|
5879
|
-
|
|
5880
|
-
|
|
5881
|
-
|
|
4585
|
+
An as useAdConfig,
|
|
4586
|
+
jn as useAdSlot,
|
|
4587
|
+
fr as useAdSlots,
|
|
5882
4588
|
Q as useAdTracking,
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
|
|
5888
|
-
|
|
5889
|
-
|
|
4589
|
+
Nn as useAdTrackingMultiple,
|
|
4590
|
+
mr as useAiAds,
|
|
4591
|
+
vn as useAiAdsInfinite,
|
|
4592
|
+
yn as useAiAdsLazy,
|
|
4593
|
+
kn as useChatWithAds,
|
|
4594
|
+
Cn as useClickTracking,
|
|
4595
|
+
Wn as withAdErrorBoundary
|
|
5890
4596
|
};
|