@trailguide/core 0.0.1 → 0.0.3
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/LICENSE +21 -0
- package/dist/analytics.d.ts +15 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/dom.d.ts +1 -0
- package/dist/dom.d.ts.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme.d.ts +33 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/trailguide.d.ts +5 -2
- package/dist/trailguide.d.ts.map +1 -1
- package/dist/trailguide.js +529 -361
- package/dist/trailguide.umd.js +7 -4
- package/dist/types.d.ts +7 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts +41 -0
- package/dist/validate.d.ts.map +1 -0
- package/package.json +10 -10
package/dist/trailguide.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
const
|
|
1
|
+
var Nt = Object.defineProperty;
|
|
2
|
+
var Vt = (t, e, n) => e in t ? Nt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
|
+
var k = (t, e, n) => Vt(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
+
const U = Math.min, z = Math.max, nt = Math.round, R = (t) => ({
|
|
5
5
|
x: t,
|
|
6
6
|
y: t
|
|
7
7
|
}), Wt = {
|
|
@@ -13,66 +13,66 @@ const Q = Math.min, _ = Math.max, it = Math.round, k = (t) => ({
|
|
|
13
13
|
start: "end",
|
|
14
14
|
end: "start"
|
|
15
15
|
};
|
|
16
|
-
function
|
|
17
|
-
return
|
|
16
|
+
function dt(t, e, n) {
|
|
17
|
+
return z(t, U(e, n));
|
|
18
18
|
}
|
|
19
19
|
function Z(t, e) {
|
|
20
20
|
return typeof t == "function" ? t(e) : t;
|
|
21
21
|
}
|
|
22
|
-
function
|
|
22
|
+
function H(t) {
|
|
23
23
|
return t.split("-")[0];
|
|
24
24
|
}
|
|
25
25
|
function tt(t) {
|
|
26
26
|
return t.split("-")[1];
|
|
27
27
|
}
|
|
28
|
-
function
|
|
28
|
+
function Tt(t) {
|
|
29
29
|
return t === "x" ? "y" : "x";
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function gt(t) {
|
|
32
32
|
return t === "y" ? "height" : "width";
|
|
33
33
|
}
|
|
34
|
-
const
|
|
35
|
-
function
|
|
36
|
-
return
|
|
34
|
+
const zt = /* @__PURE__ */ new Set(["top", "bottom"]);
|
|
35
|
+
function _(t) {
|
|
36
|
+
return zt.has(H(t)) ? "y" : "x";
|
|
37
37
|
}
|
|
38
|
-
function
|
|
39
|
-
return
|
|
38
|
+
function mt(t) {
|
|
39
|
+
return Tt(_(t));
|
|
40
40
|
}
|
|
41
|
-
function
|
|
41
|
+
function Xt(t, e, n) {
|
|
42
42
|
n === void 0 && (n = !1);
|
|
43
|
-
const i = tt(t), o =
|
|
43
|
+
const i = tt(t), o = mt(t), s = gt(o);
|
|
44
44
|
let r = o === "x" ? i === (n ? "end" : "start") ? "right" : "left" : i === "start" ? "bottom" : "top";
|
|
45
45
|
return e.reference[s] > e.floating[s] && (r = ot(r)), [r, ot(r)];
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function jt(t) {
|
|
48
48
|
const e = ot(t);
|
|
49
|
-
return [
|
|
49
|
+
return [ht(t), e, ht(e)];
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function ht(t) {
|
|
52
52
|
return t.replace(/start|end/g, (e) => Ht[e]);
|
|
53
53
|
}
|
|
54
|
-
const
|
|
55
|
-
function
|
|
54
|
+
const xt = ["left", "right"], bt = ["right", "left"], Yt = ["top", "bottom"], Kt = ["bottom", "top"];
|
|
55
|
+
function Gt(t, e, n) {
|
|
56
56
|
switch (t) {
|
|
57
57
|
case "top":
|
|
58
58
|
case "bottom":
|
|
59
|
-
return n ? e ?
|
|
59
|
+
return n ? e ? bt : xt : e ? xt : bt;
|
|
60
60
|
case "left":
|
|
61
61
|
case "right":
|
|
62
|
-
return e ?
|
|
62
|
+
return e ? Yt : Kt;
|
|
63
63
|
default:
|
|
64
64
|
return [];
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function Jt(t, e, n, i) {
|
|
68
68
|
const o = tt(t);
|
|
69
|
-
let s =
|
|
70
|
-
return o && (s = s.map((r) => r + "-" + o), e && (s = s.concat(s.map(
|
|
69
|
+
let s = Gt(H(t), n === "start", i);
|
|
70
|
+
return o && (s = s.map((r) => r + "-" + o), e && (s = s.concat(s.map(ht)))), s;
|
|
71
71
|
}
|
|
72
72
|
function ot(t) {
|
|
73
73
|
return t.replace(/left|right|bottom|top/g, (e) => Wt[e]);
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function Ut(t) {
|
|
76
76
|
return {
|
|
77
77
|
top: 0,
|
|
78
78
|
right: 0,
|
|
@@ -82,7 +82,7 @@ function Kt(t) {
|
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
function Ot(t) {
|
|
85
|
-
return typeof t != "number" ?
|
|
85
|
+
return typeof t != "number" ? Ut(t) : {
|
|
86
86
|
top: t,
|
|
87
87
|
right: t,
|
|
88
88
|
bottom: t,
|
|
@@ -112,50 +112,50 @@ function vt(t, e, n) {
|
|
|
112
112
|
reference: i,
|
|
113
113
|
floating: o
|
|
114
114
|
} = t;
|
|
115
|
-
const s =
|
|
116
|
-
let
|
|
115
|
+
const s = _(e), r = mt(e), l = gt(r), c = H(e), a = s === "y", d = i.x + i.width / 2 - o.width / 2, f = i.y + i.height / 2 - o.height / 2, h = i[l] / 2 - o[l] / 2;
|
|
116
|
+
let u;
|
|
117
117
|
switch (c) {
|
|
118
118
|
case "top":
|
|
119
|
-
|
|
119
|
+
u = {
|
|
120
120
|
x: d,
|
|
121
121
|
y: i.y - o.height
|
|
122
122
|
};
|
|
123
123
|
break;
|
|
124
124
|
case "bottom":
|
|
125
|
-
|
|
125
|
+
u = {
|
|
126
126
|
x: d,
|
|
127
127
|
y: i.y + i.height
|
|
128
128
|
};
|
|
129
129
|
break;
|
|
130
130
|
case "right":
|
|
131
|
-
|
|
131
|
+
u = {
|
|
132
132
|
x: i.x + i.width,
|
|
133
|
-
y:
|
|
133
|
+
y: f
|
|
134
134
|
};
|
|
135
135
|
break;
|
|
136
136
|
case "left":
|
|
137
|
-
|
|
137
|
+
u = {
|
|
138
138
|
x: i.x - o.width,
|
|
139
|
-
y:
|
|
139
|
+
y: f
|
|
140
140
|
};
|
|
141
141
|
break;
|
|
142
142
|
default:
|
|
143
|
-
|
|
143
|
+
u = {
|
|
144
144
|
x: i.x,
|
|
145
145
|
y: i.y
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
switch (tt(e)) {
|
|
149
149
|
case "start":
|
|
150
|
-
|
|
150
|
+
u[r] -= h * (n && a ? -1 : 1);
|
|
151
151
|
break;
|
|
152
152
|
case "end":
|
|
153
|
-
|
|
153
|
+
u[r] += h * (n && a ? -1 : 1);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
|
-
return
|
|
156
|
+
return u;
|
|
157
157
|
}
|
|
158
|
-
async function
|
|
158
|
+
async function Qt(t, e) {
|
|
159
159
|
var n;
|
|
160
160
|
e === void 0 && (e = {});
|
|
161
161
|
const {
|
|
@@ -168,15 +168,15 @@ async function Gt(t, e) {
|
|
|
168
168
|
} = t, {
|
|
169
169
|
boundary: a = "clippingAncestors",
|
|
170
170
|
rootBoundary: d = "viewport",
|
|
171
|
-
elementContext:
|
|
172
|
-
altBoundary:
|
|
173
|
-
padding:
|
|
174
|
-
} = Z(e, t),
|
|
171
|
+
elementContext: f = "floating",
|
|
172
|
+
altBoundary: h = !1,
|
|
173
|
+
padding: u = 0
|
|
174
|
+
} = Z(e, t), p = Ot(u), m = l[h ? f === "floating" ? "reference" : "floating" : f], y = st(await s.getClippingRect({
|
|
175
175
|
element: (n = await (s.isElement == null ? void 0 : s.isElement(m))) == null || n ? m : m.contextElement || await (s.getDocumentElement == null ? void 0 : s.getDocumentElement(l.floating)),
|
|
176
176
|
boundary: a,
|
|
177
177
|
rootBoundary: d,
|
|
178
178
|
strategy: c
|
|
179
|
-
})),
|
|
179
|
+
})), w = f === "floating" ? {
|
|
180
180
|
x: i,
|
|
181
181
|
y: o,
|
|
182
182
|
width: r.floating.width,
|
|
@@ -189,18 +189,18 @@ async function Gt(t, e) {
|
|
|
189
189
|
y: 1
|
|
190
190
|
}, E = st(s.convertOffsetParentRelativeRectToViewportRelativeRect ? await s.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
191
191
|
elements: l,
|
|
192
|
-
rect:
|
|
192
|
+
rect: w,
|
|
193
193
|
offsetParent: x,
|
|
194
194
|
strategy: c
|
|
195
|
-
}) :
|
|
195
|
+
}) : w);
|
|
196
196
|
return {
|
|
197
|
-
top: (
|
|
198
|
-
bottom: (E.bottom -
|
|
199
|
-
left: (
|
|
200
|
-
right: (E.right -
|
|
197
|
+
top: (y.top - E.top + p.top) / v.y,
|
|
198
|
+
bottom: (E.bottom - y.bottom + p.bottom) / v.y,
|
|
199
|
+
left: (y.left - E.left + p.left) / v.x,
|
|
200
|
+
right: (E.right - y.right + p.right) / v.x
|
|
201
201
|
};
|
|
202
202
|
}
|
|
203
|
-
const
|
|
203
|
+
const Zt = async (t, e, n) => {
|
|
204
204
|
const {
|
|
205
205
|
placement: i = "bottom",
|
|
206
206
|
strategy: o = "absolute",
|
|
@@ -213,58 +213,58 @@ const Jt = async (t, e, n) => {
|
|
|
213
213
|
strategy: o
|
|
214
214
|
}), {
|
|
215
215
|
x: d,
|
|
216
|
-
y:
|
|
217
|
-
} = vt(a, i, c),
|
|
216
|
+
y: f
|
|
217
|
+
} = vt(a, i, c), h = i, u = {}, p = 0;
|
|
218
218
|
for (let m = 0; m < l.length; m++) {
|
|
219
219
|
var g;
|
|
220
220
|
const {
|
|
221
|
-
name:
|
|
222
|
-
fn:
|
|
221
|
+
name: y,
|
|
222
|
+
fn: w
|
|
223
223
|
} = l[m], {
|
|
224
224
|
x,
|
|
225
225
|
y: v,
|
|
226
226
|
data: E,
|
|
227
227
|
reset: A
|
|
228
|
-
} = await
|
|
228
|
+
} = await w({
|
|
229
229
|
x: d,
|
|
230
|
-
y:
|
|
230
|
+
y: f,
|
|
231
231
|
initialPlacement: i,
|
|
232
|
-
placement:
|
|
232
|
+
placement: h,
|
|
233
233
|
strategy: o,
|
|
234
|
-
middlewareData:
|
|
234
|
+
middlewareData: u,
|
|
235
235
|
rects: a,
|
|
236
236
|
platform: {
|
|
237
237
|
...r,
|
|
238
|
-
detectOverflow: (g = r.detectOverflow) != null ? g :
|
|
238
|
+
detectOverflow: (g = r.detectOverflow) != null ? g : Qt
|
|
239
239
|
},
|
|
240
240
|
elements: {
|
|
241
241
|
reference: t,
|
|
242
242
|
floating: e
|
|
243
243
|
}
|
|
244
244
|
});
|
|
245
|
-
d = x ?? d,
|
|
246
|
-
...
|
|
247
|
-
[
|
|
248
|
-
...
|
|
245
|
+
d = x ?? d, f = v ?? f, u = {
|
|
246
|
+
...u,
|
|
247
|
+
[y]: {
|
|
248
|
+
...u[y],
|
|
249
249
|
...E
|
|
250
250
|
}
|
|
251
|
-
}, A &&
|
|
251
|
+
}, A && p <= 50 && (p++, typeof A == "object" && (A.placement && (h = A.placement), A.rects && (a = A.rects === !0 ? await r.getElementRects({
|
|
252
252
|
reference: t,
|
|
253
253
|
floating: e,
|
|
254
254
|
strategy: o
|
|
255
255
|
}) : A.rects), {
|
|
256
256
|
x: d,
|
|
257
|
-
y:
|
|
258
|
-
} = vt(a,
|
|
257
|
+
y: f
|
|
258
|
+
} = vt(a, h, c)), m = -1);
|
|
259
259
|
}
|
|
260
260
|
return {
|
|
261
261
|
x: d,
|
|
262
|
-
y:
|
|
263
|
-
placement:
|
|
262
|
+
y: f,
|
|
263
|
+
placement: h,
|
|
264
264
|
strategy: o,
|
|
265
|
-
middlewareData:
|
|
265
|
+
middlewareData: u
|
|
266
266
|
};
|
|
267
|
-
},
|
|
267
|
+
}, te = (t) => ({
|
|
268
268
|
name: "arrow",
|
|
269
269
|
options: t,
|
|
270
270
|
async fn(e) {
|
|
@@ -282,26 +282,26 @@ const Jt = async (t, e, n) => {
|
|
|
282
282
|
} = Z(t, e) || {};
|
|
283
283
|
if (a == null)
|
|
284
284
|
return {};
|
|
285
|
-
const
|
|
285
|
+
const f = Ot(d), h = {
|
|
286
286
|
x: n,
|
|
287
287
|
y: i
|
|
288
|
-
},
|
|
289
|
-
let
|
|
290
|
-
(!
|
|
291
|
-
const K = v / 2 - E / 2,
|
|
288
|
+
}, u = mt(o), p = gt(u), g = await r.getDimensions(a), m = u === "y", y = m ? "top" : "left", w = m ? "bottom" : "right", x = m ? "clientHeight" : "clientWidth", v = s.reference[p] + s.reference[u] - h[u] - s.floating[p], E = h[u] - s.reference[u], A = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a));
|
|
289
|
+
let M = A ? A[x] : 0;
|
|
290
|
+
(!M || !await (r.isElement == null ? void 0 : r.isElement(A))) && (M = l.floating[x] || s.floating[p]);
|
|
291
|
+
const K = v / 2 - E / 2, N = M / 2 - g[p] / 2 - 1, P = U(f[y], N), G = U(f[w], N), V = P, J = M - g[p] - G, S = M / 2 - g[p] / 2 + K, W = dt(V, S, J), D = !c.arrow && tt(o) != null && S !== W && s.reference[p] / 2 - (S < V ? P : G) - g[p] / 2 < 0, T = D ? S < V ? S - V : S - J : 0;
|
|
292
292
|
return {
|
|
293
|
-
[
|
|
293
|
+
[u]: h[u] + T,
|
|
294
294
|
data: {
|
|
295
|
-
[
|
|
296
|
-
centerOffset: S -
|
|
297
|
-
|
|
298
|
-
alignmentOffset:
|
|
295
|
+
[u]: W,
|
|
296
|
+
centerOffset: S - W - T,
|
|
297
|
+
...D && {
|
|
298
|
+
alignmentOffset: T
|
|
299
299
|
}
|
|
300
300
|
},
|
|
301
|
-
reset:
|
|
301
|
+
reset: D
|
|
302
302
|
};
|
|
303
303
|
}
|
|
304
|
-
}),
|
|
304
|
+
}), ee = function(t) {
|
|
305
305
|
return t === void 0 && (t = {}), {
|
|
306
306
|
name: "flip",
|
|
307
307
|
options: t,
|
|
@@ -316,101 +316,101 @@ const Jt = async (t, e, n) => {
|
|
|
316
316
|
elements: a
|
|
317
317
|
} = e, {
|
|
318
318
|
mainAxis: d = !0,
|
|
319
|
-
crossAxis:
|
|
320
|
-
fallbackPlacements:
|
|
321
|
-
fallbackStrategy:
|
|
322
|
-
fallbackAxisSideDirection:
|
|
319
|
+
crossAxis: f = !0,
|
|
320
|
+
fallbackPlacements: h,
|
|
321
|
+
fallbackStrategy: u = "bestFit",
|
|
322
|
+
fallbackAxisSideDirection: p = "none",
|
|
323
323
|
flipAlignment: g = !0,
|
|
324
324
|
...m
|
|
325
325
|
} = Z(t, e);
|
|
326
326
|
if ((n = s.arrow) != null && n.alignmentOffset)
|
|
327
327
|
return {};
|
|
328
|
-
const
|
|
329
|
-
!
|
|
330
|
-
const
|
|
331
|
-
let
|
|
332
|
-
if (d &&
|
|
333
|
-
const S =
|
|
334
|
-
|
|
328
|
+
const y = H(o), w = _(l), x = H(l) === l, v = await (c.isRTL == null ? void 0 : c.isRTL(a.floating)), E = h || (x || !g ? [ot(l)] : jt(l)), A = p !== "none";
|
|
329
|
+
!h && A && E.push(...Jt(l, g, p, v));
|
|
330
|
+
const M = [l, ...E], K = await c.detectOverflow(e, m), N = [];
|
|
331
|
+
let P = ((i = s.flip) == null ? void 0 : i.overflows) || [];
|
|
332
|
+
if (d && N.push(K[y]), f) {
|
|
333
|
+
const S = Xt(o, r, v);
|
|
334
|
+
N.push(K[S[0]], K[S[1]]);
|
|
335
335
|
}
|
|
336
|
-
if (
|
|
336
|
+
if (P = [...P, {
|
|
337
337
|
placement: o,
|
|
338
|
-
overflows:
|
|
339
|
-
}], !
|
|
340
|
-
var G,
|
|
341
|
-
const S = (((G = s.flip) == null ? void 0 : G.index) || 0) + 1,
|
|
342
|
-
if (
|
|
338
|
+
overflows: N
|
|
339
|
+
}], !N.every((S) => S <= 0)) {
|
|
340
|
+
var G, V;
|
|
341
|
+
const S = (((G = s.flip) == null ? void 0 : G.index) || 0) + 1, W = M[S];
|
|
342
|
+
if (W && (!(f === "alignment" ? w !== _(W) : !1) || // We leave the current main axis only if every placement on that axis
|
|
343
343
|
// overflows the main axis.
|
|
344
|
-
|
|
344
|
+
P.every((O) => _(O.placement) === w ? O.overflows[0] > 0 : !0)))
|
|
345
345
|
return {
|
|
346
346
|
data: {
|
|
347
347
|
index: S,
|
|
348
|
-
overflows:
|
|
348
|
+
overflows: P
|
|
349
349
|
},
|
|
350
350
|
reset: {
|
|
351
|
-
placement:
|
|
351
|
+
placement: W
|
|
352
352
|
}
|
|
353
353
|
};
|
|
354
|
-
let
|
|
355
|
-
if (
|
|
356
|
-
switch (
|
|
354
|
+
let D = (V = P.filter((T) => T.overflows[0] <= 0).sort((T, O) => T.overflows[1] - O.overflows[1])[0]) == null ? void 0 : V.placement;
|
|
355
|
+
if (!D)
|
|
356
|
+
switch (u) {
|
|
357
357
|
case "bestFit": {
|
|
358
358
|
var J;
|
|
359
|
-
const
|
|
359
|
+
const T = (J = P.filter((O) => {
|
|
360
360
|
if (A) {
|
|
361
|
-
const
|
|
362
|
-
return
|
|
361
|
+
const B = _(O.placement);
|
|
362
|
+
return B === w || // Create a bias to the `y` side axis due to horizontal
|
|
363
363
|
// reading directions favoring greater width.
|
|
364
|
-
|
|
364
|
+
B === "y";
|
|
365
365
|
}
|
|
366
366
|
return !0;
|
|
367
|
-
}).map((
|
|
368
|
-
|
|
367
|
+
}).map((O) => [O.placement, O.overflows.filter((B) => B > 0).reduce((B, Mt) => B + Mt, 0)]).sort((O, B) => O[1] - B[1])[0]) == null ? void 0 : J[0];
|
|
368
|
+
T && (D = T);
|
|
369
369
|
break;
|
|
370
370
|
}
|
|
371
371
|
case "initialPlacement":
|
|
372
|
-
|
|
372
|
+
D = l;
|
|
373
373
|
break;
|
|
374
374
|
}
|
|
375
|
-
if (o !==
|
|
375
|
+
if (o !== D)
|
|
376
376
|
return {
|
|
377
377
|
reset: {
|
|
378
|
-
placement:
|
|
378
|
+
placement: D
|
|
379
379
|
}
|
|
380
380
|
};
|
|
381
381
|
}
|
|
382
382
|
return {};
|
|
383
383
|
}
|
|
384
384
|
};
|
|
385
|
-
},
|
|
386
|
-
async function
|
|
385
|
+
}, ie = /* @__PURE__ */ new Set(["left", "top"]);
|
|
386
|
+
async function ne(t, e) {
|
|
387
387
|
const {
|
|
388
388
|
placement: n,
|
|
389
389
|
platform: i,
|
|
390
390
|
elements: o
|
|
391
|
-
} = t, s = await (i.isRTL == null ? void 0 : i.isRTL(o.floating)), r =
|
|
391
|
+
} = t, s = await (i.isRTL == null ? void 0 : i.isRTL(o.floating)), r = H(n), l = tt(n), c = _(n) === "y", a = ie.has(r) ? -1 : 1, d = s && c ? -1 : 1, f = Z(e, t);
|
|
392
392
|
let {
|
|
393
|
-
mainAxis:
|
|
394
|
-
crossAxis:
|
|
395
|
-
alignmentAxis:
|
|
396
|
-
} = typeof
|
|
397
|
-
mainAxis:
|
|
393
|
+
mainAxis: h,
|
|
394
|
+
crossAxis: u,
|
|
395
|
+
alignmentAxis: p
|
|
396
|
+
} = typeof f == "number" ? {
|
|
397
|
+
mainAxis: f,
|
|
398
398
|
crossAxis: 0,
|
|
399
399
|
alignmentAxis: null
|
|
400
400
|
} : {
|
|
401
|
-
mainAxis:
|
|
402
|
-
crossAxis:
|
|
403
|
-
alignmentAxis:
|
|
401
|
+
mainAxis: f.mainAxis || 0,
|
|
402
|
+
crossAxis: f.crossAxis || 0,
|
|
403
|
+
alignmentAxis: f.alignmentAxis
|
|
404
404
|
};
|
|
405
|
-
return l && typeof
|
|
406
|
-
x:
|
|
407
|
-
y:
|
|
405
|
+
return l && typeof p == "number" && (u = l === "end" ? p * -1 : p), c ? {
|
|
406
|
+
x: u * d,
|
|
407
|
+
y: h * a
|
|
408
408
|
} : {
|
|
409
|
-
x:
|
|
410
|
-
y:
|
|
409
|
+
x: h * a,
|
|
410
|
+
y: u * d
|
|
411
411
|
};
|
|
412
412
|
}
|
|
413
|
-
const
|
|
413
|
+
const oe = function(t) {
|
|
414
414
|
return t === void 0 && (t = 0), {
|
|
415
415
|
name: "offset",
|
|
416
416
|
options: t,
|
|
@@ -421,7 +421,7 @@ const ee = function(t) {
|
|
|
421
421
|
y: s,
|
|
422
422
|
placement: r,
|
|
423
423
|
middlewareData: l
|
|
424
|
-
} = e, c = await
|
|
424
|
+
} = e, c = await ne(e, t);
|
|
425
425
|
return r === ((n = l.offset) == null ? void 0 : n.placement) && (i = l.arrow) != null && i.alignmentOffset ? {} : {
|
|
426
426
|
x: o + c.x,
|
|
427
427
|
y: s + c.y,
|
|
@@ -432,7 +432,7 @@ const ee = function(t) {
|
|
|
432
432
|
};
|
|
433
433
|
}
|
|
434
434
|
};
|
|
435
|
-
},
|
|
435
|
+
}, se = function(t) {
|
|
436
436
|
return t === void 0 && (t = {}), {
|
|
437
437
|
name: "shift",
|
|
438
438
|
options: t,
|
|
@@ -446,13 +446,13 @@ const ee = function(t) {
|
|
|
446
446
|
mainAxis: r = !0,
|
|
447
447
|
crossAxis: l = !1,
|
|
448
448
|
limiter: c = {
|
|
449
|
-
fn: (
|
|
449
|
+
fn: (y) => {
|
|
450
450
|
let {
|
|
451
|
-
x:
|
|
451
|
+
x: w,
|
|
452
452
|
y: x
|
|
453
|
-
} =
|
|
453
|
+
} = y;
|
|
454
454
|
return {
|
|
455
|
-
x:
|
|
455
|
+
x: w,
|
|
456
456
|
y: x
|
|
457
457
|
};
|
|
458
458
|
}
|
|
@@ -461,20 +461,20 @@ const ee = function(t) {
|
|
|
461
461
|
} = Z(t, e), d = {
|
|
462
462
|
x: n,
|
|
463
463
|
y: i
|
|
464
|
-
},
|
|
465
|
-
let
|
|
464
|
+
}, f = await s.detectOverflow(e, a), h = _(H(o)), u = Tt(h);
|
|
465
|
+
let p = d[u], g = d[h];
|
|
466
466
|
if (r) {
|
|
467
|
-
const
|
|
468
|
-
|
|
467
|
+
const y = u === "y" ? "top" : "left", w = u === "y" ? "bottom" : "right", x = p + f[y], v = p - f[w];
|
|
468
|
+
p = dt(x, p, v);
|
|
469
469
|
}
|
|
470
470
|
if (l) {
|
|
471
|
-
const
|
|
472
|
-
g =
|
|
471
|
+
const y = h === "y" ? "top" : "left", w = h === "y" ? "bottom" : "right", x = g + f[y], v = g - f[w];
|
|
472
|
+
g = dt(x, g, v);
|
|
473
473
|
}
|
|
474
474
|
const m = c.fn({
|
|
475
475
|
...e,
|
|
476
|
-
[
|
|
477
|
-
[
|
|
476
|
+
[u]: p,
|
|
477
|
+
[h]: g
|
|
478
478
|
});
|
|
479
479
|
return {
|
|
480
480
|
...m,
|
|
@@ -482,8 +482,8 @@ const ee = function(t) {
|
|
|
482
482
|
x: m.x - n,
|
|
483
483
|
y: m.y - i,
|
|
484
484
|
enabled: {
|
|
485
|
-
[
|
|
486
|
-
[
|
|
485
|
+
[u]: r,
|
|
486
|
+
[h]: l
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
489
|
};
|
|
@@ -493,46 +493,46 @@ const ee = function(t) {
|
|
|
493
493
|
function rt() {
|
|
494
494
|
return typeof window < "u";
|
|
495
495
|
}
|
|
496
|
-
function
|
|
497
|
-
return
|
|
496
|
+
function Y(t) {
|
|
497
|
+
return kt(t) ? (t.nodeName || "").toLowerCase() : "#document";
|
|
498
498
|
}
|
|
499
499
|
function C(t) {
|
|
500
500
|
var e;
|
|
501
501
|
return (t == null || (e = t.ownerDocument) == null ? void 0 : e.defaultView) || window;
|
|
502
502
|
}
|
|
503
|
-
function
|
|
503
|
+
function F(t) {
|
|
504
504
|
var e;
|
|
505
|
-
return (e = (
|
|
505
|
+
return (e = (kt(t) ? t.ownerDocument : t.document) || window.document) == null ? void 0 : e.documentElement;
|
|
506
506
|
}
|
|
507
|
-
function
|
|
507
|
+
function kt(t) {
|
|
508
508
|
return rt() ? t instanceof Node || t instanceof C(t).Node : !1;
|
|
509
509
|
}
|
|
510
|
-
function
|
|
510
|
+
function L(t) {
|
|
511
511
|
return rt() ? t instanceof Element || t instanceof C(t).Element : !1;
|
|
512
512
|
}
|
|
513
|
-
function
|
|
513
|
+
function I(t) {
|
|
514
514
|
return rt() ? t instanceof HTMLElement || t instanceof C(t).HTMLElement : !1;
|
|
515
515
|
}
|
|
516
|
-
function
|
|
516
|
+
function St(t) {
|
|
517
517
|
return !rt() || typeof ShadowRoot > "u" ? !1 : t instanceof ShadowRoot || t instanceof C(t).ShadowRoot;
|
|
518
518
|
}
|
|
519
|
-
const
|
|
519
|
+
const re = /* @__PURE__ */ new Set(["inline", "contents"]);
|
|
520
520
|
function et(t) {
|
|
521
521
|
const {
|
|
522
522
|
overflow: e,
|
|
523
523
|
overflowX: n,
|
|
524
524
|
overflowY: i,
|
|
525
525
|
display: o
|
|
526
|
-
} =
|
|
527
|
-
return /auto|scroll|overlay|hidden|clip/.test(e + i + n) && !
|
|
526
|
+
} = $(t);
|
|
527
|
+
return /auto|scroll|overlay|hidden|clip/.test(e + i + n) && !re.has(o);
|
|
528
528
|
}
|
|
529
|
-
const
|
|
530
|
-
function
|
|
531
|
-
return
|
|
529
|
+
const le = /* @__PURE__ */ new Set(["table", "td", "th"]);
|
|
530
|
+
function ce(t) {
|
|
531
|
+
return le.has(Y(t));
|
|
532
532
|
}
|
|
533
|
-
const
|
|
533
|
+
const ae = [":popover-open", ":modal"];
|
|
534
534
|
function lt(t) {
|
|
535
|
-
return
|
|
535
|
+
return ae.some((e) => {
|
|
536
536
|
try {
|
|
537
537
|
return t.matches(e);
|
|
538
538
|
} catch {
|
|
@@ -540,34 +540,34 @@ function lt(t) {
|
|
|
540
540
|
}
|
|
541
541
|
});
|
|
542
542
|
}
|
|
543
|
-
const
|
|
544
|
-
function
|
|
545
|
-
const e = wt(), n =
|
|
546
|
-
return
|
|
543
|
+
const fe = ["transform", "translate", "scale", "rotate", "perspective"], ue = ["transform", "translate", "scale", "rotate", "perspective", "filter"], de = ["paint", "layout", "strict", "content"];
|
|
544
|
+
function yt(t) {
|
|
545
|
+
const e = wt(), n = L(t) ? $(t) : t;
|
|
546
|
+
return fe.some((i) => n[i] ? n[i] !== "none" : !1) || (n.containerType ? n.containerType !== "normal" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== "none" : !1) || !e && (n.filter ? n.filter !== "none" : !1) || ue.some((i) => (n.willChange || "").includes(i)) || de.some((i) => (n.contain || "").includes(i));
|
|
547
547
|
}
|
|
548
|
-
function
|
|
549
|
-
let e =
|
|
550
|
-
for (;
|
|
551
|
-
if (
|
|
548
|
+
function he(t) {
|
|
549
|
+
let e = q(t);
|
|
550
|
+
for (; I(e) && !j(e); ) {
|
|
551
|
+
if (yt(e))
|
|
552
552
|
return e;
|
|
553
553
|
if (lt(e))
|
|
554
554
|
return null;
|
|
555
|
-
e =
|
|
555
|
+
e = q(e);
|
|
556
556
|
}
|
|
557
557
|
return null;
|
|
558
558
|
}
|
|
559
559
|
function wt() {
|
|
560
560
|
return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
|
|
561
561
|
}
|
|
562
|
-
const
|
|
563
|
-
function
|
|
564
|
-
return
|
|
562
|
+
const pe = /* @__PURE__ */ new Set(["html", "body", "#document"]);
|
|
563
|
+
function j(t) {
|
|
564
|
+
return pe.has(Y(t));
|
|
565
565
|
}
|
|
566
|
-
function
|
|
566
|
+
function $(t) {
|
|
567
567
|
return C(t).getComputedStyle(t);
|
|
568
568
|
}
|
|
569
569
|
function ct(t) {
|
|
570
|
-
return
|
|
570
|
+
return L(t) ? {
|
|
571
571
|
scrollLeft: t.scrollLeft,
|
|
572
572
|
scrollTop: t.scrollTop
|
|
573
573
|
} : {
|
|
@@ -575,147 +575,147 @@ function ct(t) {
|
|
|
575
575
|
scrollTop: t.scrollY
|
|
576
576
|
};
|
|
577
577
|
}
|
|
578
|
-
function
|
|
579
|
-
if (
|
|
578
|
+
function q(t) {
|
|
579
|
+
if (Y(t) === "html")
|
|
580
580
|
return t;
|
|
581
581
|
const e = (
|
|
582
582
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
583
583
|
t.assignedSlot || // DOM Element detected.
|
|
584
584
|
t.parentNode || // ShadowRoot detected.
|
|
585
|
-
|
|
586
|
-
|
|
585
|
+
St(t) && t.host || // Fallback.
|
|
586
|
+
F(t)
|
|
587
587
|
);
|
|
588
|
-
return
|
|
588
|
+
return St(e) ? e.host : e;
|
|
589
589
|
}
|
|
590
|
-
function
|
|
591
|
-
const e =
|
|
592
|
-
return
|
|
590
|
+
function Lt(t) {
|
|
591
|
+
const e = q(t);
|
|
592
|
+
return j(e) ? t.ownerDocument ? t.ownerDocument.body : t.body : I(e) && et(e) ? e : Lt(e);
|
|
593
593
|
}
|
|
594
|
-
function
|
|
594
|
+
function $t(t, e, n) {
|
|
595
595
|
var i;
|
|
596
596
|
e === void 0 && (e = []);
|
|
597
|
-
const o =
|
|
598
|
-
return s ? (
|
|
597
|
+
const o = Lt(t), s = o === ((i = t.ownerDocument) == null ? void 0 : i.body), r = C(o);
|
|
598
|
+
return s ? (pt(r), e.concat(r, r.visualViewport || [], et(o) ? o : [], [])) : e.concat(o, $t(o, []));
|
|
599
599
|
}
|
|
600
|
-
function
|
|
600
|
+
function pt(t) {
|
|
601
601
|
return t.parent && Object.getPrototypeOf(t.parent) ? t.frameElement : null;
|
|
602
602
|
}
|
|
603
|
-
function
|
|
604
|
-
const e =
|
|
603
|
+
function Rt(t) {
|
|
604
|
+
const e = $(t);
|
|
605
605
|
let n = parseFloat(e.width) || 0, i = parseFloat(e.height) || 0;
|
|
606
|
-
const o =
|
|
606
|
+
const o = I(t), s = o ? t.offsetWidth : n, r = o ? t.offsetHeight : i, l = nt(n) !== s || nt(i) !== r;
|
|
607
607
|
return l && (n = s, i = r), {
|
|
608
608
|
width: n,
|
|
609
609
|
height: i,
|
|
610
610
|
$: l
|
|
611
611
|
};
|
|
612
612
|
}
|
|
613
|
-
function
|
|
614
|
-
return
|
|
613
|
+
function It(t) {
|
|
614
|
+
return L(t) ? t : t.contextElement;
|
|
615
615
|
}
|
|
616
|
-
function
|
|
617
|
-
const e =
|
|
618
|
-
if (!
|
|
619
|
-
return
|
|
616
|
+
function X(t) {
|
|
617
|
+
const e = It(t);
|
|
618
|
+
if (!I(e))
|
|
619
|
+
return R(1);
|
|
620
620
|
const n = e.getBoundingClientRect(), {
|
|
621
621
|
width: i,
|
|
622
622
|
height: o,
|
|
623
623
|
$: s
|
|
624
|
-
} =
|
|
625
|
-
let r = (s ?
|
|
624
|
+
} = Rt(e);
|
|
625
|
+
let r = (s ? nt(n.width) : n.width) / i, l = (s ? nt(n.height) : n.height) / o;
|
|
626
626
|
return (!r || !Number.isFinite(r)) && (r = 1), (!l || !Number.isFinite(l)) && (l = 1), {
|
|
627
627
|
x: r,
|
|
628
628
|
y: l
|
|
629
629
|
};
|
|
630
630
|
}
|
|
631
|
-
const
|
|
632
|
-
function
|
|
631
|
+
const ge = /* @__PURE__ */ R(0);
|
|
632
|
+
function Pt(t) {
|
|
633
633
|
const e = C(t);
|
|
634
|
-
return !wt() || !e.visualViewport ?
|
|
634
|
+
return !wt() || !e.visualViewport ? ge : {
|
|
635
635
|
x: e.visualViewport.offsetLeft,
|
|
636
636
|
y: e.visualViewport.offsetTop
|
|
637
637
|
};
|
|
638
638
|
}
|
|
639
|
-
function
|
|
639
|
+
function me(t, e, n) {
|
|
640
640
|
return e === void 0 && (e = !1), !n || e && n !== C(t) ? !1 : e;
|
|
641
641
|
}
|
|
642
|
-
function
|
|
642
|
+
function Q(t, e, n, i) {
|
|
643
643
|
e === void 0 && (e = !1), n === void 0 && (n = !1);
|
|
644
|
-
const o = t.getBoundingClientRect(), s =
|
|
645
|
-
let r =
|
|
646
|
-
e && (i ?
|
|
647
|
-
const l =
|
|
648
|
-
let c = (o.left + l.x) / r.x, a = (o.top + l.y) / r.y, d = o.width / r.x,
|
|
644
|
+
const o = t.getBoundingClientRect(), s = It(t);
|
|
645
|
+
let r = R(1);
|
|
646
|
+
e && (i ? L(i) && (r = X(i)) : r = X(t));
|
|
647
|
+
const l = me(s, n, i) ? Pt(s) : R(0);
|
|
648
|
+
let c = (o.left + l.x) / r.x, a = (o.top + l.y) / r.y, d = o.width / r.x, f = o.height / r.y;
|
|
649
649
|
if (s) {
|
|
650
|
-
const
|
|
651
|
-
let
|
|
652
|
-
for (; g && i &&
|
|
653
|
-
const m =
|
|
654
|
-
c *= m.x, a *= m.y, d *= m.x,
|
|
650
|
+
const h = C(s), u = i && L(i) ? C(i) : i;
|
|
651
|
+
let p = h, g = pt(p);
|
|
652
|
+
for (; g && i && u !== p; ) {
|
|
653
|
+
const m = X(g), y = g.getBoundingClientRect(), w = $(g), x = y.left + (g.clientLeft + parseFloat(w.paddingLeft)) * m.x, v = y.top + (g.clientTop + parseFloat(w.paddingTop)) * m.y;
|
|
654
|
+
c *= m.x, a *= m.y, d *= m.x, f *= m.y, c += x, a += v, p = C(g), g = pt(p);
|
|
655
655
|
}
|
|
656
656
|
}
|
|
657
657
|
return st({
|
|
658
658
|
width: d,
|
|
659
|
-
height:
|
|
659
|
+
height: f,
|
|
660
660
|
x: c,
|
|
661
661
|
y: a
|
|
662
662
|
});
|
|
663
663
|
}
|
|
664
664
|
function at(t, e) {
|
|
665
665
|
const n = ct(t).scrollLeft;
|
|
666
|
-
return e ? e.left + n :
|
|
666
|
+
return e ? e.left + n : Q(F(t)).left + n;
|
|
667
667
|
}
|
|
668
|
-
function
|
|
668
|
+
function Dt(t, e) {
|
|
669
669
|
const n = t.getBoundingClientRect(), i = n.left + e.scrollLeft - at(t, n), o = n.top + e.scrollTop;
|
|
670
670
|
return {
|
|
671
671
|
x: i,
|
|
672
672
|
y: o
|
|
673
673
|
};
|
|
674
674
|
}
|
|
675
|
-
function
|
|
675
|
+
function ye(t) {
|
|
676
676
|
let {
|
|
677
677
|
elements: e,
|
|
678
678
|
rect: n,
|
|
679
679
|
offsetParent: i,
|
|
680
680
|
strategy: o
|
|
681
681
|
} = t;
|
|
682
|
-
const s = o === "fixed", r =
|
|
682
|
+
const s = o === "fixed", r = F(i), l = e ? lt(e.floating) : !1;
|
|
683
683
|
if (i === r || l && s)
|
|
684
684
|
return n;
|
|
685
685
|
let c = {
|
|
686
686
|
scrollLeft: 0,
|
|
687
687
|
scrollTop: 0
|
|
688
|
-
}, a =
|
|
689
|
-
const d =
|
|
690
|
-
if ((
|
|
691
|
-
const
|
|
692
|
-
a =
|
|
688
|
+
}, a = R(1);
|
|
689
|
+
const d = R(0), f = I(i);
|
|
690
|
+
if ((f || !f && !s) && ((Y(i) !== "body" || et(r)) && (c = ct(i)), I(i))) {
|
|
691
|
+
const u = Q(i);
|
|
692
|
+
a = X(i), d.x = u.x + i.clientLeft, d.y = u.y + i.clientTop;
|
|
693
693
|
}
|
|
694
|
-
const
|
|
694
|
+
const h = r && !f && !s ? Dt(r, c) : R(0);
|
|
695
695
|
return {
|
|
696
696
|
width: n.width * a.x,
|
|
697
697
|
height: n.height * a.y,
|
|
698
|
-
x: n.x * a.x - c.scrollLeft * a.x + d.x +
|
|
699
|
-
y: n.y * a.y - c.scrollTop * a.y + d.y +
|
|
698
|
+
x: n.x * a.x - c.scrollLeft * a.x + d.x + h.x,
|
|
699
|
+
y: n.y * a.y - c.scrollTop * a.y + d.y + h.y
|
|
700
700
|
};
|
|
701
701
|
}
|
|
702
|
-
function
|
|
702
|
+
function we(t) {
|
|
703
703
|
return Array.from(t.getClientRects());
|
|
704
704
|
}
|
|
705
|
-
function
|
|
706
|
-
const e =
|
|
705
|
+
function xe(t) {
|
|
706
|
+
const e = F(t), n = ct(t), i = t.ownerDocument.body, o = z(e.scrollWidth, e.clientWidth, i.scrollWidth, i.clientWidth), s = z(e.scrollHeight, e.clientHeight, i.scrollHeight, i.clientHeight);
|
|
707
707
|
let r = -n.scrollLeft + at(t);
|
|
708
708
|
const l = -n.scrollTop;
|
|
709
|
-
return
|
|
709
|
+
return $(i).direction === "rtl" && (r += z(e.clientWidth, i.clientWidth) - o), {
|
|
710
710
|
width: o,
|
|
711
711
|
height: s,
|
|
712
712
|
x: r,
|
|
713
713
|
y: l
|
|
714
714
|
};
|
|
715
715
|
}
|
|
716
|
-
const
|
|
717
|
-
function
|
|
718
|
-
const n = C(t), i =
|
|
716
|
+
const At = 25;
|
|
717
|
+
function be(t, e) {
|
|
718
|
+
const n = C(t), i = F(t), o = n.visualViewport;
|
|
719
719
|
let s = i.clientWidth, r = i.clientHeight, l = 0, c = 0;
|
|
720
720
|
if (o) {
|
|
721
721
|
s = o.width, r = o.height;
|
|
@@ -724,9 +724,9 @@ function we(t, e) {
|
|
|
724
724
|
}
|
|
725
725
|
const a = at(i);
|
|
726
726
|
if (a <= 0) {
|
|
727
|
-
const d = i.ownerDocument,
|
|
728
|
-
|
|
729
|
-
} else a <=
|
|
727
|
+
const d = i.ownerDocument, f = d.body, h = getComputedStyle(f), u = d.compatMode === "CSS1Compat" && parseFloat(h.marginLeft) + parseFloat(h.marginRight) || 0, p = Math.abs(i.clientWidth - f.clientWidth - u);
|
|
728
|
+
p <= At && (s -= p);
|
|
729
|
+
} else a <= At && (s += a);
|
|
730
730
|
return {
|
|
731
731
|
width: s,
|
|
732
732
|
height: r,
|
|
@@ -734,9 +734,9 @@ function we(t, e) {
|
|
|
734
734
|
y: c
|
|
735
735
|
};
|
|
736
736
|
}
|
|
737
|
-
const
|
|
738
|
-
function
|
|
739
|
-
const n =
|
|
737
|
+
const ve = /* @__PURE__ */ new Set(["absolute", "fixed"]);
|
|
738
|
+
function Se(t, e) {
|
|
739
|
+
const n = Q(t, !0, e === "fixed"), i = n.top + t.clientTop, o = n.left + t.clientLeft, s = I(t) ? X(t) : R(1), r = t.clientWidth * s.x, l = t.clientHeight * s.y, c = o * s.x, a = i * s.y;
|
|
740
740
|
return {
|
|
741
741
|
width: r,
|
|
742
742
|
height: l,
|
|
@@ -744,16 +744,16 @@ function xe(t, e) {
|
|
|
744
744
|
y: a
|
|
745
745
|
};
|
|
746
746
|
}
|
|
747
|
-
function
|
|
747
|
+
function Ct(t, e, n) {
|
|
748
748
|
let i;
|
|
749
749
|
if (e === "viewport")
|
|
750
|
-
i =
|
|
750
|
+
i = be(t, n);
|
|
751
751
|
else if (e === "document")
|
|
752
|
-
i =
|
|
753
|
-
else if (
|
|
754
|
-
i =
|
|
752
|
+
i = xe(F(t));
|
|
753
|
+
else if (L(e))
|
|
754
|
+
i = Se(e, n);
|
|
755
755
|
else {
|
|
756
|
-
const o =
|
|
756
|
+
const o = Pt(t);
|
|
757
757
|
i = {
|
|
758
758
|
x: e.x - o.x,
|
|
759
759
|
y: e.y - o.y,
|
|
@@ -764,33 +764,33 @@ function At(t, e, n) {
|
|
|
764
764
|
return st(i);
|
|
765
765
|
}
|
|
766
766
|
function Ft(t, e) {
|
|
767
|
-
const n =
|
|
768
|
-
return n === e || !
|
|
767
|
+
const n = q(t);
|
|
768
|
+
return n === e || !L(n) || j(n) ? !1 : $(n).position === "fixed" || Ft(n, e);
|
|
769
769
|
}
|
|
770
|
-
function
|
|
770
|
+
function Ae(t, e) {
|
|
771
771
|
const n = e.get(t);
|
|
772
772
|
if (n)
|
|
773
773
|
return n;
|
|
774
|
-
let i =
|
|
775
|
-
const s =
|
|
776
|
-
let r = s ?
|
|
777
|
-
for (;
|
|
778
|
-
const l =
|
|
779
|
-
!c && l.position === "fixed" && (o = null), (s ? !c && !o : !c && l.position === "static" && !!o &&
|
|
774
|
+
let i = $t(t, []).filter((l) => L(l) && Y(l) !== "body"), o = null;
|
|
775
|
+
const s = $(t).position === "fixed";
|
|
776
|
+
let r = s ? q(t) : t;
|
|
777
|
+
for (; L(r) && !j(r); ) {
|
|
778
|
+
const l = $(r), c = yt(r);
|
|
779
|
+
!c && l.position === "fixed" && (o = null), (s ? !c && !o : !c && l.position === "static" && !!o && ve.has(o.position) || et(r) && !c && Ft(t, r)) ? i = i.filter((d) => d !== r) : o = l, r = q(r);
|
|
780
780
|
}
|
|
781
781
|
return e.set(t, i), i;
|
|
782
782
|
}
|
|
783
|
-
function
|
|
783
|
+
function Ce(t) {
|
|
784
784
|
let {
|
|
785
785
|
element: e,
|
|
786
786
|
boundary: n,
|
|
787
787
|
rootBoundary: i,
|
|
788
788
|
strategy: o
|
|
789
789
|
} = t;
|
|
790
|
-
const r = [...n === "clippingAncestors" ? lt(e) ? [] :
|
|
791
|
-
const
|
|
792
|
-
return a.top =
|
|
793
|
-
},
|
|
790
|
+
const r = [...n === "clippingAncestors" ? lt(e) ? [] : Ae(e, this._c) : [].concat(n), i], l = r[0], c = r.reduce((a, d) => {
|
|
791
|
+
const f = Ct(e, d, o);
|
|
792
|
+
return a.top = z(f.top, a.top), a.right = U(f.right, a.right), a.bottom = U(f.bottom, a.bottom), a.left = z(f.left, a.left), a;
|
|
793
|
+
}, Ct(e, l, o));
|
|
794
794
|
return {
|
|
795
795
|
width: c.right - c.left,
|
|
796
796
|
height: c.bottom - c.top,
|
|
@@ -798,73 +798,73 @@ function be(t) {
|
|
|
798
798
|
y: c.top
|
|
799
799
|
};
|
|
800
800
|
}
|
|
801
|
-
function
|
|
801
|
+
function Ee(t) {
|
|
802
802
|
const {
|
|
803
803
|
width: e,
|
|
804
804
|
height: n
|
|
805
|
-
} =
|
|
805
|
+
} = Rt(t);
|
|
806
806
|
return {
|
|
807
807
|
width: e,
|
|
808
808
|
height: n
|
|
809
809
|
};
|
|
810
810
|
}
|
|
811
|
-
function
|
|
812
|
-
const i =
|
|
811
|
+
function Te(t, e, n) {
|
|
812
|
+
const i = I(e), o = F(e), s = n === "fixed", r = Q(t, !0, s, e);
|
|
813
813
|
let l = {
|
|
814
814
|
scrollLeft: 0,
|
|
815
815
|
scrollTop: 0
|
|
816
816
|
};
|
|
817
|
-
const c =
|
|
817
|
+
const c = R(0);
|
|
818
818
|
function a() {
|
|
819
819
|
c.x = at(o);
|
|
820
820
|
}
|
|
821
821
|
if (i || !i && !s)
|
|
822
|
-
if ((
|
|
823
|
-
const
|
|
824
|
-
c.x =
|
|
822
|
+
if ((Y(e) !== "body" || et(o)) && (l = ct(e)), i) {
|
|
823
|
+
const u = Q(e, !0, s, e);
|
|
824
|
+
c.x = u.x + e.clientLeft, c.y = u.y + e.clientTop;
|
|
825
825
|
} else o && a();
|
|
826
826
|
s && !i && o && a();
|
|
827
|
-
const d = o && !i && !s ?
|
|
827
|
+
const d = o && !i && !s ? Dt(o, l) : R(0), f = r.left + l.scrollLeft - c.x - d.x, h = r.top + l.scrollTop - c.y - d.y;
|
|
828
828
|
return {
|
|
829
|
-
x:
|
|
830
|
-
y:
|
|
829
|
+
x: f,
|
|
830
|
+
y: h,
|
|
831
831
|
width: r.width,
|
|
832
832
|
height: r.height
|
|
833
833
|
};
|
|
834
834
|
}
|
|
835
835
|
function ft(t) {
|
|
836
|
-
return
|
|
836
|
+
return $(t).position === "static";
|
|
837
837
|
}
|
|
838
|
-
function
|
|
839
|
-
if (!
|
|
838
|
+
function Et(t, e) {
|
|
839
|
+
if (!I(t) || $(t).position === "fixed")
|
|
840
840
|
return null;
|
|
841
841
|
if (e)
|
|
842
842
|
return e(t);
|
|
843
843
|
let n = t.offsetParent;
|
|
844
|
-
return
|
|
844
|
+
return F(t) === n && (n = n.ownerDocument.body), n;
|
|
845
845
|
}
|
|
846
846
|
function Bt(t, e) {
|
|
847
847
|
const n = C(t);
|
|
848
848
|
if (lt(t))
|
|
849
849
|
return n;
|
|
850
|
-
if (!
|
|
851
|
-
let o =
|
|
852
|
-
for (; o && !
|
|
853
|
-
if (
|
|
850
|
+
if (!I(t)) {
|
|
851
|
+
let o = q(t);
|
|
852
|
+
for (; o && !j(o); ) {
|
|
853
|
+
if (L(o) && !ft(o))
|
|
854
854
|
return o;
|
|
855
|
-
o =
|
|
855
|
+
o = q(o);
|
|
856
856
|
}
|
|
857
857
|
return n;
|
|
858
858
|
}
|
|
859
|
-
let i =
|
|
860
|
-
for (; i &&
|
|
861
|
-
i =
|
|
862
|
-
return i &&
|
|
859
|
+
let i = Et(t, e);
|
|
860
|
+
for (; i && ce(i) && ft(i); )
|
|
861
|
+
i = Et(i, e);
|
|
862
|
+
return i && j(i) && ft(i) && !yt(i) ? n : i || he(t) || n;
|
|
863
863
|
}
|
|
864
|
-
const
|
|
864
|
+
const Oe = async function(t) {
|
|
865
865
|
const e = this.getOffsetParent || Bt, n = this.getDimensions, i = await n(t.floating);
|
|
866
866
|
return {
|
|
867
|
-
reference:
|
|
867
|
+
reference: Te(t.reference, await e(t.floating), t.strategy),
|
|
868
868
|
floating: {
|
|
869
869
|
x: 0,
|
|
870
870
|
y: 0,
|
|
@@ -873,41 +873,41 @@ const Ce = async function(t) {
|
|
|
873
873
|
}
|
|
874
874
|
};
|
|
875
875
|
};
|
|
876
|
-
function
|
|
877
|
-
return
|
|
876
|
+
function ke(t) {
|
|
877
|
+
return $(t).direction === "rtl";
|
|
878
878
|
}
|
|
879
|
-
const
|
|
880
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
881
|
-
getDocumentElement:
|
|
882
|
-
getClippingRect:
|
|
879
|
+
const Le = {
|
|
880
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: ye,
|
|
881
|
+
getDocumentElement: F,
|
|
882
|
+
getClippingRect: Ce,
|
|
883
883
|
getOffsetParent: Bt,
|
|
884
|
-
getElementRects:
|
|
885
|
-
getClientRects:
|
|
886
|
-
getDimensions:
|
|
887
|
-
getScale:
|
|
888
|
-
isElement:
|
|
889
|
-
isRTL:
|
|
890
|
-
},
|
|
884
|
+
getElementRects: Oe,
|
|
885
|
+
getClientRects: we,
|
|
886
|
+
getDimensions: Ee,
|
|
887
|
+
getScale: X,
|
|
888
|
+
isElement: L,
|
|
889
|
+
isRTL: ke
|
|
890
|
+
}, $e = oe, Re = se, Ie = ee, Pe = te, De = (t, e, n) => {
|
|
891
891
|
const i = /* @__PURE__ */ new Map(), o = {
|
|
892
|
-
platform:
|
|
892
|
+
platform: Le,
|
|
893
893
|
...n
|
|
894
894
|
}, s = {
|
|
895
895
|
...o.platform,
|
|
896
896
|
_c: i
|
|
897
897
|
};
|
|
898
|
-
return
|
|
898
|
+
return Zt(t, e, {
|
|
899
899
|
...o,
|
|
900
900
|
platform: s
|
|
901
901
|
});
|
|
902
902
|
};
|
|
903
|
-
function
|
|
903
|
+
function _t(t) {
|
|
904
904
|
try {
|
|
905
905
|
return document.querySelector(t);
|
|
906
906
|
} catch {
|
|
907
907
|
return console.warn(`[Trailguide] Invalid selector: ${t}`), null;
|
|
908
908
|
}
|
|
909
909
|
}
|
|
910
|
-
function
|
|
910
|
+
function qt(t) {
|
|
911
911
|
const e = t.getBoundingClientRect(), n = window.getComputedStyle(t);
|
|
912
912
|
return e.width > 0 && e.height > 0 && n.visibility !== "hidden" && n.display !== "none" && n.opacity !== "0";
|
|
913
913
|
}
|
|
@@ -918,62 +918,94 @@ function Fe(t) {
|
|
|
918
918
|
inline: "center"
|
|
919
919
|
});
|
|
920
920
|
}
|
|
921
|
-
function
|
|
921
|
+
function Be(t) {
|
|
922
|
+
const e = document.createElement("div");
|
|
923
|
+
return e.textContent = t, e.innerHTML;
|
|
924
|
+
}
|
|
925
|
+
function it(t, e, n) {
|
|
922
926
|
const i = document.createElement(t);
|
|
923
927
|
return e && (i.className = e), n && n.appendChild(i), i;
|
|
924
928
|
}
|
|
925
|
-
|
|
929
|
+
function _e() {
|
|
930
|
+
return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
931
|
+
}
|
|
932
|
+
let ut = null;
|
|
933
|
+
function qe() {
|
|
934
|
+
return ut || (ut = _e()), ut;
|
|
935
|
+
}
|
|
936
|
+
async function Me(t, e) {
|
|
937
|
+
if (!t.endpoint) return;
|
|
938
|
+
const n = {
|
|
939
|
+
...e,
|
|
940
|
+
user_id: t.userId,
|
|
941
|
+
session_id: qe(),
|
|
942
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
943
|
+
};
|
|
944
|
+
try {
|
|
945
|
+
const i = await fetch(t.endpoint, {
|
|
946
|
+
method: "POST",
|
|
947
|
+
headers: { "Content-Type": "application/json" },
|
|
948
|
+
body: JSON.stringify(n)
|
|
949
|
+
});
|
|
950
|
+
t.debug && (i.ok ? console.log("[Trailguide Analytics]", n) : console.error(`[Trailguide Analytics] Server error: ${i.status}`));
|
|
951
|
+
} catch (i) {
|
|
952
|
+
t.debug && console.error("[Trailguide Analytics] Failed:", i);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
class Ne {
|
|
926
956
|
constructor(e = {}) {
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
957
|
+
k(this, "trail", null);
|
|
958
|
+
k(this, "currentStepIndex", 0);
|
|
959
|
+
k(this, "isActive", !1);
|
|
960
|
+
k(this, "options", {});
|
|
931
961
|
// DOM elements
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
962
|
+
k(this, "overlay", null);
|
|
963
|
+
k(this, "tooltip", null);
|
|
964
|
+
k(this, "arrowEl", null);
|
|
935
965
|
// Cleanup functions
|
|
936
|
-
|
|
966
|
+
k(this, "cleanupFns", []);
|
|
967
|
+
k(this, "stepCleanupFns", []);
|
|
968
|
+
k(this, "instanceId", `trailguide-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`);
|
|
937
969
|
this.options = e;
|
|
938
970
|
}
|
|
939
971
|
start(e) {
|
|
940
|
-
this.trail = e, this.currentStepIndex = 0, this.isActive = !0, this.createOverlay(), this.showStep(), this.bindKeyboard();
|
|
972
|
+
this.trail = e, this.currentStepIndex = 0, this.isActive = !0, this.createOverlay(), this.showStep(), this.bindKeyboard(), this.emitAnalytics("trail_started");
|
|
941
973
|
}
|
|
942
974
|
stop() {
|
|
943
975
|
this.isActive = !1, this.cleanup();
|
|
944
976
|
}
|
|
945
977
|
next() {
|
|
946
|
-
!this.trail || !this.isActive || (this.currentStepIndex < this.trail.steps.length - 1 ? (this.currentStepIndex++, this.showStep()) : this.complete());
|
|
978
|
+
!this.trail || !this.isActive || (this.emitAnalytics("step_completed"), this.currentStepIndex < this.trail.steps.length - 1 ? (this.currentStepIndex++, this.showStep()) : this.complete());
|
|
947
979
|
}
|
|
948
980
|
prev() {
|
|
949
981
|
!this.trail || !this.isActive || this.currentStepIndex > 0 && (this.currentStepIndex--, this.showStep());
|
|
950
982
|
}
|
|
951
983
|
skip() {
|
|
952
984
|
var e, n;
|
|
953
|
-
this.isActive = !1, this.cleanup(), (n = (e = this.options).onSkip) == null || n.call(e);
|
|
985
|
+
this.emitAnalytics("trail_skipped"), this.isActive = !1, this.cleanup(), (n = (e = this.options).onSkip) == null || n.call(e);
|
|
954
986
|
}
|
|
955
987
|
goToStep(e) {
|
|
956
988
|
!this.trail || !this.isActive || e >= 0 && e < this.trail.steps.length && (this.currentStepIndex = e, this.showStep());
|
|
957
989
|
}
|
|
958
990
|
complete() {
|
|
959
991
|
var e, n;
|
|
960
|
-
this.isActive = !1, this.cleanup(), (n = (e = this.options).onComplete) == null || n.call(e);
|
|
992
|
+
this.emitAnalytics("trail_completed"), this.isActive = !1, this.cleanup(), (n = (e = this.options).onComplete) == null || n.call(e);
|
|
961
993
|
}
|
|
962
994
|
createOverlay() {
|
|
963
|
-
var
|
|
964
|
-
this.overlay =
|
|
965
|
-
const e =
|
|
995
|
+
var i, o, s;
|
|
996
|
+
this.overlay = it("div", "trailguide-overlay"), document.body.appendChild(this.overlay);
|
|
997
|
+
const e = it("div", "trailguide-spotlight", this.overlay), n = `${this.instanceId}-mask`;
|
|
966
998
|
e.innerHTML = `
|
|
967
999
|
<svg width="100%" height="100%">
|
|
968
1000
|
<defs>
|
|
969
|
-
<mask id="
|
|
1001
|
+
<mask id="${n}">
|
|
970
1002
|
<rect x="0" y="0" width="100%" height="100%" fill="white" />
|
|
971
1003
|
<rect class="trailguide-cutout" rx="4" fill="black" />
|
|
972
1004
|
</mask>
|
|
973
1005
|
</defs>
|
|
974
|
-
<rect x="0" y="0" width="100%" height="100%"
|
|
1006
|
+
<rect x="0" y="0" width="100%" height="100%" mask="url(#${n})" />
|
|
975
1007
|
</svg>
|
|
976
|
-
`,
|
|
1008
|
+
`, it("div", "trailguide-highlight", this.overlay), this.tooltip = it("div", "trailguide-tooltip"), this.tooltip.innerHTML = `
|
|
977
1009
|
<div class="trailguide-tooltip-content">
|
|
978
1010
|
<div class="trailguide-tooltip-header">
|
|
979
1011
|
<h3 class="trailguide-tooltip-title"></h3>
|
|
@@ -989,22 +1021,37 @@ class Be {
|
|
|
989
1021
|
</div>
|
|
990
1022
|
<div class="trailguide-tooltip-arrow"></div>
|
|
991
1023
|
</div>
|
|
992
|
-
`, document.body.appendChild(this.tooltip), this.arrowEl = this.tooltip.querySelector(".trailguide-tooltip-arrow"), (
|
|
1024
|
+
`, document.body.appendChild(this.tooltip), this.arrowEl = this.tooltip.querySelector(".trailguide-tooltip-arrow"), (i = this.tooltip.querySelector(".trailguide-tooltip-close")) == null || i.addEventListener("click", () => this.skip()), (o = this.tooltip.querySelector(".trailguide-btn-prev")) == null || o.addEventListener("click", () => this.prev()), (s = this.tooltip.querySelector(".trailguide-btn-next")) == null || s.addEventListener("click", () => this.next());
|
|
993
1025
|
}
|
|
994
1026
|
showStep() {
|
|
995
1027
|
if (!this.trail || !this.overlay || !this.tooltip) return;
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1028
|
+
this.stepCleanupFns.forEach((s) => s()), this.stepCleanupFns = [], this.tooltip.style.transform = "";
|
|
1029
|
+
const e = this.overlay.querySelector(".trailguide-spotlight"), n = this.overlay.querySelector(".trailguide-highlight");
|
|
1030
|
+
e && (e.style.display = ""), n && (n.style.display = "");
|
|
1031
|
+
const i = this.trail.steps[this.currentStepIndex];
|
|
1032
|
+
if (!i) return;
|
|
1033
|
+
this.emitAnalytics("step_viewed");
|
|
1034
|
+
const o = _t(i.target);
|
|
1035
|
+
if (!o || !qt(o)) {
|
|
1036
|
+
console.warn(`[Trailguide] Target not found or not visible: ${i.target}`), this.showErrorState(i);
|
|
1001
1037
|
return;
|
|
1002
1038
|
}
|
|
1003
|
-
Fe(
|
|
1004
|
-
var
|
|
1005
|
-
this.updateSpotlight(
|
|
1039
|
+
Fe(o), setTimeout(() => {
|
|
1040
|
+
var s, r;
|
|
1041
|
+
this.updateSpotlight(o), this.updateTooltip(i, o), (r = (s = this.options).onStepChange) == null || r.call(s, i, this.currentStepIndex);
|
|
1006
1042
|
}, 100);
|
|
1007
1043
|
}
|
|
1044
|
+
showErrorState(e) {
|
|
1045
|
+
var f, h;
|
|
1046
|
+
if (!this.tooltip || !this.trail) return;
|
|
1047
|
+
const n = (f = this.overlay) == null ? void 0 : f.querySelector(".trailguide-spotlight"), i = (h = this.overlay) == null ? void 0 : h.querySelector(".trailguide-highlight");
|
|
1048
|
+
n && (n.style.display = "none"), i && (i.style.display = "none");
|
|
1049
|
+
const o = this.tooltip.querySelector(".trailguide-tooltip-title"), s = this.tooltip.querySelector(".trailguide-tooltip-body"), r = this.tooltip.querySelector(".trailguide-tooltip-progress"), l = this.tooltip.querySelector(".trailguide-btn-prev"), c = this.tooltip.querySelector(".trailguide-btn-next"), a = this.currentStepIndex === 0, d = this.currentStepIndex === this.trail.steps.length - 1;
|
|
1050
|
+
o && (o.textContent = "Element Not Found"), s && (s.innerHTML = `
|
|
1051
|
+
<p style="color: #ef4444; margin: 0 0 8px 0;">Could not find: <code style="background: #fee2e2; padding: 2px 6px; border-radius: 4px; font-size: 12px;">${Be(e.target)}</code></p>
|
|
1052
|
+
<p style="margin: 0; font-size: 13px; color: #6b7280;">The target element doesn't exist on this page. Press <kbd style="background: #f3f4f6; padding: 2px 6px; border-radius: 4px; font-size: 11px;">Esc</kbd> to close or skip to the next step.</p>
|
|
1053
|
+
`), r && (r.textContent = `${this.currentStepIndex + 1} of ${this.trail.steps.length}`), l && (l.style.display = a ? "none" : "block"), c && (c.textContent = d ? "Close" : "Skip Step"), this.tooltip.style.left = "50%", this.tooltip.style.top = "50%", this.tooltip.style.transform = "translate(-50%, -50%)";
|
|
1054
|
+
}
|
|
1008
1055
|
updateSpotlight(e) {
|
|
1009
1056
|
if (!this.overlay) return;
|
|
1010
1057
|
const n = e.getBoundingClientRect(), i = 8, o = this.overlay.querySelector(".trailguide-cutout");
|
|
@@ -1016,7 +1063,7 @@ class Be {
|
|
|
1016
1063
|
const l = e.getBoundingClientRect();
|
|
1017
1064
|
o && (o.setAttribute("x", String(l.left - i)), o.setAttribute("y", String(l.top - i)), o.setAttribute("width", String(l.width + i * 2)), o.setAttribute("height", String(l.height + i * 2))), s && (s.style.top = `${l.top - i}px`, s.style.left = `${l.left - i}px`, s.style.width = `${l.width + i * 2}px`, s.style.height = `${l.height + i * 2}px`);
|
|
1018
1065
|
};
|
|
1019
|
-
window.addEventListener("scroll", r, !0), window.addEventListener("resize", r), this.
|
|
1066
|
+
window.addEventListener("scroll", r, !0), window.addEventListener("resize", r), this.stepCleanupFns.push(() => {
|
|
1020
1067
|
window.removeEventListener("scroll", r, !0), window.removeEventListener("resize", r);
|
|
1021
1068
|
});
|
|
1022
1069
|
}
|
|
@@ -1024,18 +1071,18 @@ class Be {
|
|
|
1024
1071
|
if (!this.tooltip || !this.trail || !this.arrowEl) return;
|
|
1025
1072
|
const i = this.currentStepIndex === 0, o = this.currentStepIndex === this.trail.steps.length - 1, s = this.tooltip.querySelector(".trailguide-tooltip-title"), r = this.tooltip.querySelector(".trailguide-tooltip-body"), l = this.tooltip.querySelector(".trailguide-tooltip-progress"), c = this.tooltip.querySelector(".trailguide-btn-prev"), a = this.tooltip.querySelector(".trailguide-btn-next");
|
|
1026
1073
|
s && (s.textContent = e.title), r && (r.textContent = e.content), l && (l.textContent = `${this.currentStepIndex + 1} of ${this.trail.steps.length}`), c && (c.style.display = i ? "none" : "block"), a && (a.textContent = o ? "Finish" : "Next");
|
|
1027
|
-
const { x: d, y:
|
|
1074
|
+
const { x: d, y: f, placement: h, middlewareData: u } = await De(n, this.tooltip, {
|
|
1028
1075
|
placement: e.placement,
|
|
1029
1076
|
middleware: [
|
|
1030
|
-
|
|
1031
|
-
|
|
1077
|
+
$e(12),
|
|
1078
|
+
Ie(),
|
|
1032
1079
|
Re({ padding: 8 }),
|
|
1033
|
-
|
|
1080
|
+
Pe({ element: this.arrowEl })
|
|
1034
1081
|
]
|
|
1035
1082
|
});
|
|
1036
|
-
if (this.tooltip.style.left = `${d}px`, this.tooltip.style.top = `${
|
|
1037
|
-
const { x:
|
|
1038
|
-
this.arrowEl.style.left =
|
|
1083
|
+
if (this.tooltip.style.left = `${d}px`, this.tooltip.style.top = `${f}px`, this.tooltip.dataset.placement = h, u.arrow && this.arrowEl) {
|
|
1084
|
+
const { x: p, y: g } = u.arrow;
|
|
1085
|
+
this.arrowEl.style.left = p != null ? `${p}px` : "", this.arrowEl.style.top = g != null ? `${g}px` : "";
|
|
1039
1086
|
}
|
|
1040
1087
|
}
|
|
1041
1088
|
bindKeyboard() {
|
|
@@ -1058,33 +1105,154 @@ class Be {
|
|
|
1058
1105
|
}
|
|
1059
1106
|
cleanup() {
|
|
1060
1107
|
var e, n;
|
|
1061
|
-
this.cleanupFns.forEach((i) => i()), this.cleanupFns = [], (e = this.overlay) == null || e.remove(), (n = this.tooltip) == null || n.remove(), this.overlay = null, this.tooltip = null;
|
|
1108
|
+
this.stepCleanupFns.forEach((i) => i()), this.stepCleanupFns = [], this.cleanupFns.forEach((i) => i()), this.cleanupFns = [], (e = this.overlay) == null || e.remove(), (n = this.tooltip) == null || n.remove(), this.overlay = null, this.tooltip = null, this.arrowEl = null;
|
|
1109
|
+
}
|
|
1110
|
+
emitAnalytics(e) {
|
|
1111
|
+
if (!this.options.analytics || !this.trail) return;
|
|
1112
|
+
const n = this.trail.steps[this.currentStepIndex], i = this.options.analytics.trailId || this.trail.id;
|
|
1113
|
+
Me(this.options.analytics, {
|
|
1114
|
+
event_type: e,
|
|
1115
|
+
trail_id: i,
|
|
1116
|
+
step_id: n == null ? void 0 : n.id,
|
|
1117
|
+
step_index: this.currentStepIndex
|
|
1118
|
+
});
|
|
1062
1119
|
}
|
|
1063
1120
|
}
|
|
1064
1121
|
let b = null;
|
|
1065
|
-
function
|
|
1066
|
-
return b && b.stop(), b = new
|
|
1122
|
+
function He(t, e) {
|
|
1123
|
+
return b && b.stop(), b = new Ne(e), b.start(t), b;
|
|
1067
1124
|
}
|
|
1068
|
-
function
|
|
1069
|
-
b == null || b.stop();
|
|
1125
|
+
function ze() {
|
|
1126
|
+
b == null || b.stop(), b = null;
|
|
1070
1127
|
}
|
|
1071
|
-
function
|
|
1128
|
+
function Xe() {
|
|
1072
1129
|
b == null || b.next();
|
|
1073
1130
|
}
|
|
1074
|
-
function
|
|
1131
|
+
function je() {
|
|
1075
1132
|
b == null || b.prev();
|
|
1076
1133
|
}
|
|
1077
|
-
function
|
|
1078
|
-
b == null || b.skip();
|
|
1134
|
+
function Ye() {
|
|
1135
|
+
b == null || b.skip(), b = null;
|
|
1136
|
+
}
|
|
1137
|
+
const Ke = {
|
|
1138
|
+
// Backgrounds
|
|
1139
|
+
bgBase: "#0f172a",
|
|
1140
|
+
bgCard: "#1e293b",
|
|
1141
|
+
bgGlass: "rgba(255,255,255,0.06)",
|
|
1142
|
+
bgInput: "rgba(255,255,255,0.03)",
|
|
1143
|
+
// Text
|
|
1144
|
+
textPrimary: "#f8fafc",
|
|
1145
|
+
textSecondary: "#e2e8f0",
|
|
1146
|
+
textTertiary: "#cbd5e1",
|
|
1147
|
+
textMuted: "#94a3b8",
|
|
1148
|
+
textFaint: "#64748b",
|
|
1149
|
+
// Borders
|
|
1150
|
+
borderSubtle: "rgba(255,255,255,0.06)",
|
|
1151
|
+
borderPanel: "rgba(255,255,255,0.08)",
|
|
1152
|
+
borderControl: "rgba(255,255,255,0.1)",
|
|
1153
|
+
// Brand / accent
|
|
1154
|
+
accent: "#1a91a2",
|
|
1155
|
+
accentBg: "rgba(26,145,162,0.15)",
|
|
1156
|
+
accentBorder: "rgba(26,145,162,0.3)",
|
|
1157
|
+
// Error / recording
|
|
1158
|
+
error: "#ef4444",
|
|
1159
|
+
errorBg: "rgba(239,68,68,0.1)",
|
|
1160
|
+
errorBorder: "rgba(239,68,68,0.3)",
|
|
1161
|
+
errorLight: "rgba(248,113,113,0.1)",
|
|
1162
|
+
errorText: "#fca5a5",
|
|
1163
|
+
// Success
|
|
1164
|
+
success: "#10b981",
|
|
1165
|
+
successBg: "rgba(16,185,129,0.1)",
|
|
1166
|
+
successBorder: "rgba(16,185,129,0.3)",
|
|
1167
|
+
successText: "#6ee7b7",
|
|
1168
|
+
// Warning
|
|
1169
|
+
warningBg: "rgba(234,179,8,0.1)",
|
|
1170
|
+
// Disabled
|
|
1171
|
+
disabled: "#9ca3af",
|
|
1172
|
+
disabledBg: "#4b5563",
|
|
1173
|
+
// Shadows
|
|
1174
|
+
shadowLight: "0 4px 12px rgba(0,0,0,0.15)",
|
|
1175
|
+
shadowMedium: "0 4px 20px rgba(0,0,0,0.4)",
|
|
1176
|
+
shadowOverlay: "rgba(0,0,0,0.3)"
|
|
1177
|
+
};
|
|
1178
|
+
function Ge(t) {
|
|
1179
|
+
const e = [], n = [];
|
|
1180
|
+
return t.id || e.push({
|
|
1181
|
+
stepId: "",
|
|
1182
|
+
stepIndex: -1,
|
|
1183
|
+
type: "missing_required_field",
|
|
1184
|
+
message: 'Trail is missing required "id" field'
|
|
1185
|
+
}), !t.steps || t.steps.length === 0 ? (e.push({
|
|
1186
|
+
stepId: "",
|
|
1187
|
+
stepIndex: -1,
|
|
1188
|
+
type: "missing_required_field",
|
|
1189
|
+
message: "Trail has no steps"
|
|
1190
|
+
}), { valid: !1, errors: e, warnings: n }) : (t.steps.forEach((i, o) => {
|
|
1191
|
+
if (i.id || e.push({
|
|
1192
|
+
stepId: `step-${o}`,
|
|
1193
|
+
stepIndex: o,
|
|
1194
|
+
type: "missing_required_field",
|
|
1195
|
+
message: `Step ${o + 1} is missing required "id" field`
|
|
1196
|
+
}), !i.target) {
|
|
1197
|
+
e.push({
|
|
1198
|
+
stepId: i.id || `step-${o}`,
|
|
1199
|
+
stepIndex: o,
|
|
1200
|
+
type: "missing_required_field",
|
|
1201
|
+
message: `Step ${o + 1} is missing required "target" field`
|
|
1202
|
+
});
|
|
1203
|
+
return;
|
|
1204
|
+
}
|
|
1205
|
+
const s = _t(i.target);
|
|
1206
|
+
s ? qt(s) || n.push({
|
|
1207
|
+
stepId: i.id,
|
|
1208
|
+
stepIndex: o,
|
|
1209
|
+
type: "hidden_target",
|
|
1210
|
+
message: `Step ${o + 1} ("${i.title}"): Target element exists but is hidden`,
|
|
1211
|
+
selector: i.target
|
|
1212
|
+
}) : e.push({
|
|
1213
|
+
stepId: i.id,
|
|
1214
|
+
stepIndex: o,
|
|
1215
|
+
type: "missing_target",
|
|
1216
|
+
message: `Step ${o + 1} ("${i.title}"): Target element not found`,
|
|
1217
|
+
selector: i.target
|
|
1218
|
+
}), i.target && Ve(i.target) && n.push({
|
|
1219
|
+
stepId: i.id,
|
|
1220
|
+
stepIndex: o,
|
|
1221
|
+
type: "unstable_selector",
|
|
1222
|
+
message: `Step ${o + 1}: Consider using data-trail-id for more stable targeting`,
|
|
1223
|
+
selector: i.target
|
|
1224
|
+
});
|
|
1225
|
+
}), {
|
|
1226
|
+
valid: e.length === 0,
|
|
1227
|
+
errors: e,
|
|
1228
|
+
warnings: n
|
|
1229
|
+
});
|
|
1230
|
+
}
|
|
1231
|
+
function Ve(t) {
|
|
1232
|
+
return t.startsWith("#") || t.includes("[data-") ? !1 : !!(t.includes(":nth-child") || t.includes(":nth-of-type") || /^\.[a-z]+-[a-z0-9]+$/i.test(t));
|
|
1233
|
+
}
|
|
1234
|
+
function Je(t) {
|
|
1235
|
+
if (t.valid && t.warnings.length === 0) {
|
|
1236
|
+
console.log("%c✓ Trail validation passed", "color: green; font-weight: bold");
|
|
1237
|
+
return;
|
|
1238
|
+
}
|
|
1239
|
+
t.errors.length > 0 && (console.group("%c✗ Trail validation errors", "color: red; font-weight: bold"), t.errors.forEach((e) => {
|
|
1240
|
+
console.error(`Step ${e.stepIndex + 1}: ${e.message}`), e.selector && console.error(` Selector: ${e.selector}`);
|
|
1241
|
+
}), console.groupEnd()), t.warnings.length > 0 && (console.group("%c⚠ Trail validation warnings", "color: orange; font-weight: bold"), t.warnings.forEach((e) => {
|
|
1242
|
+
console.warn(`Step ${e.stepIndex + 1}: ${e.message}`), e.selector && console.warn(` Selector: ${e.selector}`);
|
|
1243
|
+
}), console.groupEnd());
|
|
1079
1244
|
}
|
|
1080
1245
|
export {
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1246
|
+
Ne as Trailguide,
|
|
1247
|
+
_t as findElement,
|
|
1248
|
+
qt as isElementVisible,
|
|
1249
|
+
Je as logValidationResults,
|
|
1250
|
+
Xe as next,
|
|
1251
|
+
je as prev,
|
|
1086
1252
|
Fe as scrollToElement,
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1253
|
+
Ye as skip,
|
|
1254
|
+
He as start,
|
|
1255
|
+
ze as stop,
|
|
1256
|
+
Ke as theme,
|
|
1257
|
+
Ge as validateTrail
|
|
1090
1258
|
};
|