@popgrids/embed 0.0.5 → 0.0.7
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/AGENTS.md +23 -33
- package/README.md +22 -3
- package/dist/components/pop-comment-thread.d.ts.map +1 -1
- package/dist/components/pop-comment.d.ts.map +1 -1
- package/dist/components/pop-feed.d.ts.map +1 -1
- package/dist/components/pop-grid.d.ts +12 -0
- package/dist/components/pop-grid.d.ts.map +1 -1
- package/dist/components/pop-widget.d.ts.map +1 -1
- package/dist/embed.js +477 -443
- package/dist/embed.js.map +1 -1
- package/dist/index.cjs +56 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +125 -91
- package/dist/index.js.map +1 -1
- package/dist/lib/position-feed.d.ts +9 -0
- package/dist/lib/position-feed.d.ts.map +1 -0
- package/dist/loader.js +1 -0
- package/dist/store/embed-auth-store.d.ts +3 -0
- package/dist/store/embed-auth-store.d.ts.map +1 -1
- package/dist/store/grid-store.d.ts +12 -0
- package/dist/store/grid-store.d.ts.map +1 -1
- package/package.json +4 -3
package/dist/embed.js
CHANGED
|
@@ -203,7 +203,7 @@ var ae = 50, oe = async (e, t, n) => {
|
|
|
203
203
|
strategy: i,
|
|
204
204
|
middlewareData: m
|
|
205
205
|
};
|
|
206
|
-
},
|
|
206
|
+
}, w = function(e) {
|
|
207
207
|
return e === void 0 && (e = {}), {
|
|
208
208
|
name: "flip",
|
|
209
209
|
options: e,
|
|
@@ -213,27 +213,27 @@ var ae = 50, oe = async (e, t, n) => {
|
|
|
213
213
|
if ((n = i.arrow) != null && n.alignmentOffset) return {};
|
|
214
214
|
let x = c(r), te = f(o), ne = c(o) === o, C = await (l.isRTL == null ? void 0 : l.isRTL(u.floating)), re = g || (ne || !y ? [S(o)] : h(o)), ie = v !== "none";
|
|
215
215
|
!g && ie && re.push(...ee(o, y, v, C));
|
|
216
|
-
let ae = [o, ...re], oe = await l.detectOverflow(t, b),
|
|
217
|
-
if (d &&
|
|
216
|
+
let ae = [o, ...re], oe = await l.detectOverflow(t, b), w = [], T = i.flip?.overflows || [];
|
|
217
|
+
if (d && w.push(oe[x]), p) {
|
|
218
218
|
let e = m(r, a, C);
|
|
219
|
-
|
|
219
|
+
w.push(oe[e[0]], oe[e[1]]);
|
|
220
220
|
}
|
|
221
|
-
if (
|
|
221
|
+
if (T = [...T, {
|
|
222
222
|
placement: r,
|
|
223
|
-
overflows:
|
|
224
|
-
}], !
|
|
223
|
+
overflows: w
|
|
224
|
+
}], !w.every((e) => e <= 0)) {
|
|
225
225
|
let e = (i.flip?.index || 0) + 1, t = ae[e];
|
|
226
|
-
if (t && (!(p === "alignment" && te !== f(t)) ||
|
|
226
|
+
if (t && (!(p === "alignment" && te !== f(t)) || T.every((e) => f(e.placement) !== te || e.overflows[0] > 0))) return {
|
|
227
227
|
data: {
|
|
228
228
|
index: e,
|
|
229
|
-
overflows:
|
|
229
|
+
overflows: T
|
|
230
230
|
},
|
|
231
231
|
reset: { placement: t }
|
|
232
232
|
};
|
|
233
|
-
let n =
|
|
233
|
+
let n = T.filter((e) => e.overflows[0] <= 0).sort((e, t) => e.overflows[1] - t.overflows[1])[0]?.placement;
|
|
234
234
|
if (!n) switch (_) {
|
|
235
235
|
case "bestFit": {
|
|
236
|
-
let e =
|
|
236
|
+
let e = T.filter((e) => {
|
|
237
237
|
if (ie) {
|
|
238
238
|
let t = f(e.placement);
|
|
239
239
|
return t === te || t === "y";
|
|
@@ -252,9 +252,9 @@ var ae = 50, oe = async (e, t, n) => {
|
|
|
252
252
|
return {};
|
|
253
253
|
}
|
|
254
254
|
};
|
|
255
|
-
},
|
|
256
|
-
async function
|
|
257
|
-
let { placement: n, platform: r, elements: i } = e, a = await (r.isRTL == null ? void 0 : r.isRTL(i.floating)), o = c(n), u = l(n), d = f(n) === "y", p =
|
|
255
|
+
}, T = /*#__PURE__*/ new Set(["left", "top"]);
|
|
256
|
+
async function se(e, t) {
|
|
257
|
+
let { placement: n, platform: r, elements: i } = e, a = await (r.isRTL == null ? void 0 : r.isRTL(i.floating)), o = c(n), u = l(n), d = f(n) === "y", p = T.has(o) ? -1 : 1, m = a && d ? -1 : 1, h = s(t, e), { mainAxis: g, crossAxis: _, alignmentAxis: v } = typeof h == "number" ? {
|
|
258
258
|
mainAxis: h,
|
|
259
259
|
crossAxis: 0,
|
|
260
260
|
alignmentAxis: null
|
|
@@ -271,13 +271,13 @@ async function ce(e, t) {
|
|
|
271
271
|
y: _ * m
|
|
272
272
|
};
|
|
273
273
|
}
|
|
274
|
-
var
|
|
274
|
+
var ce = function(e) {
|
|
275
275
|
return e === void 0 && (e = 0), {
|
|
276
276
|
name: "offset",
|
|
277
277
|
options: e,
|
|
278
278
|
async fn(t) {
|
|
279
279
|
var n;
|
|
280
|
-
let { x: r, y: i, placement: a, middlewareData: o } = t, s = await
|
|
280
|
+
let { x: r, y: i, placement: a, middlewareData: o } = t, s = await se(t, e);
|
|
281
281
|
return a === o.offset?.placement && (n = o.arrow) != null && n.alignmentOffset ? {} : {
|
|
282
282
|
x: r + s.x,
|
|
283
283
|
y: i + s.y,
|
|
@@ -288,7 +288,7 @@ var le = function(e) {
|
|
|
288
288
|
};
|
|
289
289
|
}
|
|
290
290
|
};
|
|
291
|
-
},
|
|
291
|
+
}, le = function(e) {
|
|
292
292
|
return e === void 0 && (e = {}), {
|
|
293
293
|
name: "shift",
|
|
294
294
|
options: e,
|
|
@@ -325,39 +325,39 @@ var le = function(e) {
|
|
|
325
325
|
};
|
|
326
326
|
//#endregion
|
|
327
327
|
//#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
|
|
328
|
-
function
|
|
328
|
+
function ue() {
|
|
329
329
|
return typeof window < "u";
|
|
330
330
|
}
|
|
331
|
-
function T(e) {
|
|
332
|
-
return fe(e) ? (e.nodeName || "").toLowerCase() : "#document";
|
|
333
|
-
}
|
|
334
331
|
function E(e) {
|
|
335
|
-
|
|
336
|
-
return (e == null || (t = e.ownerDocument) == null ? void 0 : t.defaultView) || window;
|
|
332
|
+
return de(e) ? (e.nodeName || "").toLowerCase() : "#document";
|
|
337
333
|
}
|
|
338
334
|
function D(e) {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
function fe(e) {
|
|
342
|
-
return de() ? e instanceof Node || e instanceof E(e).Node : !1;
|
|
335
|
+
var t;
|
|
336
|
+
return (e == null || (t = e.ownerDocument) == null ? void 0 : t.defaultView) || window;
|
|
343
337
|
}
|
|
344
338
|
function O(e) {
|
|
345
|
-
return de() ? e
|
|
339
|
+
return ((de(e) ? e.ownerDocument : e.document) || window.document)?.documentElement;
|
|
340
|
+
}
|
|
341
|
+
function de(e) {
|
|
342
|
+
return ue() ? e instanceof Node || e instanceof D(e).Node : !1;
|
|
346
343
|
}
|
|
347
344
|
function k(e) {
|
|
348
|
-
return
|
|
345
|
+
return ue() ? e instanceof Element || e instanceof D(e).Element : !1;
|
|
346
|
+
}
|
|
347
|
+
function A(e) {
|
|
348
|
+
return ue() ? e instanceof HTMLElement || e instanceof D(e).HTMLElement : !1;
|
|
349
|
+
}
|
|
350
|
+
function fe(e) {
|
|
351
|
+
return !ue() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof D(e).ShadowRoot;
|
|
349
352
|
}
|
|
350
353
|
function pe(e) {
|
|
351
|
-
|
|
354
|
+
let { overflow: t, overflowX: n, overflowY: r, display: i } = N(e);
|
|
355
|
+
return /auto|scroll|overlay|hidden|clip/.test(t + r + n) && i !== "inline" && i !== "contents";
|
|
352
356
|
}
|
|
353
357
|
function me(e) {
|
|
354
|
-
|
|
355
|
-
return /auto|scroll|overlay|hidden|clip/.test(t + r + n) && i !== "inline" && i !== "contents";
|
|
358
|
+
return /^(table|td|th)$/.test(E(e));
|
|
356
359
|
}
|
|
357
360
|
function he(e) {
|
|
358
|
-
return /^(table|td|th)$/.test(T(e));
|
|
359
|
-
}
|
|
360
|
-
function ge(e) {
|
|
361
361
|
try {
|
|
362
362
|
if (e.matches(":popover-open")) return !0;
|
|
363
363
|
} catch {}
|
|
@@ -367,31 +367,31 @@ function ge(e) {
|
|
|
367
367
|
return !1;
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
|
-
var
|
|
371
|
-
function
|
|
372
|
-
let t =
|
|
373
|
-
return
|
|
370
|
+
var ge = /transform|translate|scale|rotate|perspective|filter/, _e = /paint|layout|strict|content/, j = (e) => !!e && e !== "none", ve;
|
|
371
|
+
function ye(e) {
|
|
372
|
+
let t = k(e) ? N(e) : e;
|
|
373
|
+
return j(t.transform) || j(t.translate) || j(t.scale) || j(t.rotate) || j(t.perspective) || !xe() && (j(t.backdropFilter) || j(t.filter)) || ge.test(t.willChange || "") || _e.test(t.contain || "");
|
|
374
374
|
}
|
|
375
|
-
function
|
|
376
|
-
let t =
|
|
377
|
-
for (;
|
|
378
|
-
if (
|
|
379
|
-
if (
|
|
380
|
-
t =
|
|
375
|
+
function be(e) {
|
|
376
|
+
let t = P(e);
|
|
377
|
+
for (; A(t) && !M(t);) {
|
|
378
|
+
if (ye(t)) return t;
|
|
379
|
+
if (he(t)) return null;
|
|
380
|
+
t = P(t);
|
|
381
381
|
}
|
|
382
382
|
return null;
|
|
383
383
|
}
|
|
384
|
-
function
|
|
385
|
-
return
|
|
384
|
+
function xe() {
|
|
385
|
+
return ve ??= typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none"), ve;
|
|
386
386
|
}
|
|
387
|
-
function
|
|
388
|
-
return /^(html|body|#document)$/.test(
|
|
387
|
+
function M(e) {
|
|
388
|
+
return /^(html|body|#document)$/.test(E(e));
|
|
389
389
|
}
|
|
390
|
-
function
|
|
391
|
-
return
|
|
390
|
+
function N(e) {
|
|
391
|
+
return D(e).getComputedStyle(e);
|
|
392
392
|
}
|
|
393
|
-
function
|
|
394
|
-
return
|
|
393
|
+
function Se(e) {
|
|
394
|
+
return k(e) ? {
|
|
395
395
|
scrollLeft: e.scrollLeft,
|
|
396
396
|
scrollTop: e.scrollTop
|
|
397
397
|
} : {
|
|
@@ -399,69 +399,69 @@ function we(e) {
|
|
|
399
399
|
scrollTop: e.scrollY
|
|
400
400
|
};
|
|
401
401
|
}
|
|
402
|
-
function
|
|
403
|
-
if (
|
|
404
|
-
let t = e.assignedSlot || e.parentNode ||
|
|
405
|
-
return
|
|
402
|
+
function P(e) {
|
|
403
|
+
if (E(e) === "html") return e;
|
|
404
|
+
let t = e.assignedSlot || e.parentNode || fe(e) && e.host || O(e);
|
|
405
|
+
return fe(t) ? t.host : t;
|
|
406
406
|
}
|
|
407
|
-
function
|
|
408
|
-
let t =
|
|
409
|
-
return
|
|
407
|
+
function Ce(e) {
|
|
408
|
+
let t = P(e);
|
|
409
|
+
return M(t) ? (e.ownerDocument || e).body : A(t) && pe(t) ? t : Ce(t);
|
|
410
410
|
}
|
|
411
|
-
function
|
|
411
|
+
function we(e, t, n) {
|
|
412
412
|
t === void 0 && (t = []), n === void 0 && (n = !0);
|
|
413
|
-
let r =
|
|
413
|
+
let r = Ce(e), i = r === e.ownerDocument?.body, a = D(r);
|
|
414
414
|
if (i) {
|
|
415
|
-
let e =
|
|
416
|
-
return t.concat(a, a.visualViewport || [],
|
|
417
|
-
} else return t.concat(r,
|
|
415
|
+
let e = Te(a);
|
|
416
|
+
return t.concat(a, a.visualViewport || [], pe(r) ? r : [], e && n ? we(e) : []);
|
|
417
|
+
} else return t.concat(r, we(r, [], n));
|
|
418
418
|
}
|
|
419
|
-
function
|
|
419
|
+
function Te(e) {
|
|
420
420
|
return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
|
|
421
421
|
}
|
|
422
422
|
//#endregion
|
|
423
423
|
//#region ../../node_modules/.pnpm/@floating-ui+dom@1.8.0/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
|
|
424
|
-
function
|
|
425
|
-
let t =
|
|
424
|
+
function Ee(e) {
|
|
425
|
+
let t = N(e), r = parseFloat(t.width) || 0, i = parseFloat(t.height) || 0, a = A(e), o = a ? e.offsetWidth : r, s = a ? e.offsetHeight : i, c = n(r) !== o || n(i) !== s;
|
|
426
426
|
return c && (r = o, i = s), {
|
|
427
427
|
width: r,
|
|
428
428
|
height: i,
|
|
429
429
|
$: c
|
|
430
430
|
};
|
|
431
431
|
}
|
|
432
|
-
function
|
|
433
|
-
return
|
|
432
|
+
function De(e) {
|
|
433
|
+
return k(e) ? e : e.contextElement;
|
|
434
434
|
}
|
|
435
|
-
function
|
|
436
|
-
let t =
|
|
437
|
-
if (!
|
|
438
|
-
let r = t.getBoundingClientRect(), { width: a, height: o, $: s } =
|
|
435
|
+
function F(e) {
|
|
436
|
+
let t = De(e);
|
|
437
|
+
if (!A(t)) return i(1);
|
|
438
|
+
let r = t.getBoundingClientRect(), { width: a, height: o, $: s } = Ee(t), c = (s ? n(r.width) : r.width) / a, l = (s ? n(r.height) : r.height) / o;
|
|
439
439
|
return (!c || !Number.isFinite(c)) && (c = 1), (!l || !Number.isFinite(l)) && (l = 1), {
|
|
440
440
|
x: c,
|
|
441
441
|
y: l
|
|
442
442
|
};
|
|
443
443
|
}
|
|
444
|
-
var
|
|
445
|
-
function
|
|
446
|
-
let t =
|
|
447
|
-
return !
|
|
444
|
+
var Oe = /*#__PURE__*/ i(0);
|
|
445
|
+
function ke(e) {
|
|
446
|
+
let t = D(e);
|
|
447
|
+
return !xe() || !t.visualViewport ? Oe : {
|
|
448
448
|
x: t.visualViewport.offsetLeft,
|
|
449
449
|
y: t.visualViewport.offsetTop
|
|
450
450
|
};
|
|
451
451
|
}
|
|
452
|
-
function
|
|
453
|
-
return t === void 0 && (t = !1), !!n && t && n ===
|
|
452
|
+
function Ae(e, t, n) {
|
|
453
|
+
return t === void 0 && (t = !1), !!n && t && n === D(e);
|
|
454
454
|
}
|
|
455
|
-
function
|
|
455
|
+
function I(e, t, n, r) {
|
|
456
456
|
t === void 0 && (t = !1), n === void 0 && (n = !1);
|
|
457
|
-
let a = e.getBoundingClientRect(), o =
|
|
458
|
-
t && (r ?
|
|
459
|
-
let c =
|
|
457
|
+
let a = e.getBoundingClientRect(), o = De(e), s = i(1);
|
|
458
|
+
t && (r ? k(r) && (s = F(r)) : s = F(e));
|
|
459
|
+
let c = Ae(o, n, r) ? ke(o) : i(0), l = (a.left + c.x) / s.x, u = (a.top + c.y) / s.y, d = a.width / s.x, f = a.height / s.y;
|
|
460
460
|
if (o && r) {
|
|
461
|
-
let e =
|
|
461
|
+
let e = D(o), t = k(r) ? D(r) : r, n = e, i = Te(n);
|
|
462
462
|
for (; i && t !== n;) {
|
|
463
|
-
let e =
|
|
464
|
-
l *= e.x, u *= e.y, d *= e.x, f *= e.y, l += a, u += o, n =
|
|
463
|
+
let e = F(i), t = i.getBoundingClientRect(), r = N(i), a = t.left + (i.clientLeft + parseFloat(r.paddingLeft)) * e.x, o = t.top + (i.clientTop + parseFloat(r.paddingTop)) * e.y;
|
|
464
|
+
l *= e.x, u *= e.y, d *= e.x, f *= e.y, l += a, u += o, n = D(i), i = Te(n);
|
|
465
465
|
}
|
|
466
466
|
}
|
|
467
467
|
return C({
|
|
@@ -471,29 +471,29 @@ function P(e, t, n, r) {
|
|
|
471
471
|
y: u
|
|
472
472
|
});
|
|
473
473
|
}
|
|
474
|
-
function
|
|
475
|
-
let n =
|
|
476
|
-
return t ? t.left + n :
|
|
474
|
+
function je(e, t) {
|
|
475
|
+
let n = Se(e).scrollLeft;
|
|
476
|
+
return t ? t.left + n : I(O(e)).left + n;
|
|
477
477
|
}
|
|
478
|
-
function
|
|
478
|
+
function Me(e, t) {
|
|
479
479
|
let n = e.getBoundingClientRect();
|
|
480
480
|
return {
|
|
481
|
-
x: n.left + t.scrollLeft -
|
|
481
|
+
x: n.left + t.scrollLeft - je(e, n),
|
|
482
482
|
y: n.top + t.scrollTop
|
|
483
483
|
};
|
|
484
484
|
}
|
|
485
|
-
function
|
|
486
|
-
let { elements: t, rect: n, offsetParent: r, strategy: a } = e, o = a === "fixed", s =
|
|
485
|
+
function Ne(e) {
|
|
486
|
+
let { elements: t, rect: n, offsetParent: r, strategy: a } = e, o = a === "fixed", s = O(r), c = t ? he(t.floating) : !1;
|
|
487
487
|
if (r === s || c && o) return n;
|
|
488
488
|
let l = {
|
|
489
489
|
scrollLeft: 0,
|
|
490
490
|
scrollTop: 0
|
|
491
|
-
}, u = i(1), d = i(0), f =
|
|
492
|
-
if ((f || !o) && ((
|
|
493
|
-
let e =
|
|
494
|
-
u =
|
|
491
|
+
}, u = i(1), d = i(0), f = A(r);
|
|
492
|
+
if ((f || !o) && ((E(r) !== "body" || pe(s)) && (l = Se(r)), f)) {
|
|
493
|
+
let e = I(r);
|
|
494
|
+
u = F(r), d.x = e.x + r.clientLeft, d.y = e.y + r.clientTop;
|
|
495
495
|
}
|
|
496
|
-
let p = s && !f && !o ?
|
|
496
|
+
let p = s && !f && !o ? Me(s, l) : i(0);
|
|
497
497
|
return {
|
|
498
498
|
width: n.width * u.x,
|
|
499
499
|
height: n.height * u.y,
|
|
@@ -501,29 +501,29 @@ function Fe(e) {
|
|
|
501
501
|
y: n.y * u.y - l.scrollTop * u.y + d.y + p.y
|
|
502
502
|
};
|
|
503
503
|
}
|
|
504
|
-
function
|
|
504
|
+
function Pe(e) {
|
|
505
505
|
return e.getClientRects ? Array.from(e.getClientRects()) : [];
|
|
506
506
|
}
|
|
507
|
-
function
|
|
508
|
-
let n =
|
|
509
|
-
return
|
|
507
|
+
function Fe(e) {
|
|
508
|
+
let n = Se(e), r = e.ownerDocument.body, i = t(e.scrollWidth, e.clientWidth, r.scrollWidth, r.clientWidth), a = t(e.scrollHeight, e.clientHeight, r.scrollHeight, r.clientHeight), o = -n.scrollLeft + je(e), s = -n.scrollTop;
|
|
509
|
+
return N(r).direction === "rtl" && (o += t(e.clientWidth, r.clientWidth) - i), {
|
|
510
510
|
width: i,
|
|
511
511
|
height: a,
|
|
512
512
|
x: o,
|
|
513
513
|
y: s
|
|
514
514
|
};
|
|
515
515
|
}
|
|
516
|
-
var
|
|
517
|
-
function
|
|
516
|
+
var Ie = 25;
|
|
517
|
+
function Le(e, t, n) {
|
|
518
518
|
n === void 0 && (n = "viewport");
|
|
519
|
-
let r = n === "layoutViewport", i =
|
|
519
|
+
let r = n === "layoutViewport", i = D(e), a = O(e), o = i.visualViewport, s = a.clientWidth, c = a.clientHeight, l = 0, u = 0;
|
|
520
520
|
if (o) {
|
|
521
|
-
let e = !
|
|
521
|
+
let e = !xe() || t === "fixed";
|
|
522
522
|
r ? e || (l = -o.offsetLeft, u = -o.offsetTop) : (s = o.width, c = o.height, e && (l = o.offsetLeft, u = o.offsetTop));
|
|
523
523
|
}
|
|
524
|
-
if (
|
|
524
|
+
if (je(a) <= 0) {
|
|
525
525
|
let e = a.ownerDocument, t = e.body, n = getComputedStyle(t), r = e.compatMode === "CSS1Compat" && parseFloat(n.marginLeft) + parseFloat(n.marginRight) || 0, i = Math.abs(a.clientWidth - t.clientWidth - r), o = getComputedStyle(a).scrollbarGutter === "stable both-edges" ? i / 2 : i;
|
|
526
|
-
o <=
|
|
526
|
+
o <= Ie && (s -= o);
|
|
527
527
|
}
|
|
528
528
|
return {
|
|
529
529
|
width: s,
|
|
@@ -532,8 +532,8 @@ function ze(e, t, n) {
|
|
|
532
532
|
y: u
|
|
533
533
|
};
|
|
534
534
|
}
|
|
535
|
-
function
|
|
536
|
-
let n =
|
|
535
|
+
function Re(e, t) {
|
|
536
|
+
let n = I(e, !0, t === "fixed"), r = n.top + e.clientTop, i = n.left + e.clientLeft, a = F(e);
|
|
537
537
|
return {
|
|
538
538
|
width: e.clientWidth * a.x,
|
|
539
539
|
height: e.clientHeight * a.y,
|
|
@@ -541,13 +541,13 @@ function Be(e, t) {
|
|
|
541
541
|
y: r * a.y
|
|
542
542
|
};
|
|
543
543
|
}
|
|
544
|
-
function
|
|
544
|
+
function ze(e, t, n) {
|
|
545
545
|
let r;
|
|
546
|
-
if (t === "viewport" || t === "layoutViewport") r =
|
|
547
|
-
else if (t === "document") r =
|
|
548
|
-
else if (
|
|
546
|
+
if (t === "viewport" || t === "layoutViewport") r = Le(e, n, t);
|
|
547
|
+
else if (t === "document") r = Fe(O(e));
|
|
548
|
+
else if (k(t)) r = Re(t, n);
|
|
549
549
|
else {
|
|
550
|
-
let n =
|
|
550
|
+
let n = ke(e);
|
|
551
551
|
r = {
|
|
552
552
|
x: t.x - n.x,
|
|
553
553
|
y: t.y - n.y,
|
|
@@ -557,20 +557,20 @@ function Ve(e, t, n) {
|
|
|
557
557
|
}
|
|
558
558
|
return C(r);
|
|
559
559
|
}
|
|
560
|
-
function
|
|
560
|
+
function Be(e, t) {
|
|
561
561
|
let n = t.get(e);
|
|
562
562
|
if (n) return n;
|
|
563
|
-
let r =
|
|
564
|
-
for (;
|
|
565
|
-
let e =
|
|
566
|
-
!t && (n === "fixed" || n === "absolute" && e.position === "static") ? r = r.filter((e) => e !== o) : i = e, o =
|
|
563
|
+
let r = we(e, [], !1).filter((e) => k(e) && E(e) !== "body"), i = null, a = N(e).position === "fixed", o = a ? P(e) : e;
|
|
564
|
+
for (; k(o) && !M(o);) {
|
|
565
|
+
let e = N(o), t = ye(o), n = i ? i.position : a ? "fixed" : "";
|
|
566
|
+
!t && (n === "fixed" || n === "absolute" && e.position === "static") ? r = r.filter((e) => e !== o) : i = e, o = P(o);
|
|
567
567
|
}
|
|
568
568
|
return t.set(e, r), r;
|
|
569
569
|
}
|
|
570
|
-
function
|
|
571
|
-
let { element: r, boundary: i, rootBoundary: a, strategy: o } = n, s = [...i === "clippingAncestors" ?
|
|
570
|
+
function Ve(n) {
|
|
571
|
+
let { element: r, boundary: i, rootBoundary: a, strategy: o } = n, s = [...i === "clippingAncestors" ? he(r) ? [] : Be(r, this._c) : [].concat(i), a], c = ze(r, s[0], o), l = c.top, u = c.right, d = c.bottom, f = c.left;
|
|
572
572
|
for (let n = 1; n < s.length; n++) {
|
|
573
|
-
let i =
|
|
573
|
+
let i = ze(r, s[n], o);
|
|
574
574
|
l = t(i.top, l), u = e(i.right, u), d = e(i.bottom, d), f = t(i.left, f);
|
|
575
575
|
}
|
|
576
576
|
return {
|
|
@@ -580,24 +580,24 @@ function Ue(n) {
|
|
|
580
580
|
y: l
|
|
581
581
|
};
|
|
582
582
|
}
|
|
583
|
-
function
|
|
584
|
-
let { width: t, height: n } =
|
|
583
|
+
function He(e) {
|
|
584
|
+
let { width: t, height: n } = Ee(e);
|
|
585
585
|
return {
|
|
586
586
|
width: t,
|
|
587
587
|
height: n
|
|
588
588
|
};
|
|
589
589
|
}
|
|
590
|
-
function
|
|
591
|
-
let r =
|
|
590
|
+
function Ue(e, t, n) {
|
|
591
|
+
let r = A(t), a = O(t), o = n === "fixed", s = I(e, !0, o, t), c = {
|
|
592
592
|
scrollLeft: 0,
|
|
593
593
|
scrollTop: 0
|
|
594
594
|
}, l = i(0);
|
|
595
|
-
if ((r || !o) && ((
|
|
596
|
-
let e =
|
|
595
|
+
if ((r || !o) && ((E(t) !== "body" || pe(a)) && (c = Se(t)), r)) {
|
|
596
|
+
let e = I(t, !0, o, t);
|
|
597
597
|
l.x = e.x + t.clientLeft, l.y = e.y + t.clientTop;
|
|
598
598
|
}
|
|
599
|
-
!r && a && (l.x =
|
|
600
|
-
let u = a && !r && !o ?
|
|
599
|
+
!r && a && (l.x = je(a));
|
|
600
|
+
let u = a && !r && !o ? Me(a, c) : i(0);
|
|
601
601
|
return {
|
|
602
602
|
x: s.left + c.scrollLeft - l.x - u.x,
|
|
603
603
|
y: s.top + c.scrollTop - l.y - u.y,
|
|
@@ -605,34 +605,34 @@ function Ge(e, t, n) {
|
|
|
605
605
|
height: s.height
|
|
606
606
|
};
|
|
607
607
|
}
|
|
608
|
-
function
|
|
609
|
-
return
|
|
608
|
+
function We(e) {
|
|
609
|
+
return N(e).position === "static";
|
|
610
610
|
}
|
|
611
|
-
function
|
|
612
|
-
if (!
|
|
611
|
+
function Ge(e, t) {
|
|
612
|
+
if (!A(e) || N(e).position === "fixed") return null;
|
|
613
613
|
if (t) return t(e);
|
|
614
614
|
let n = e.offsetParent;
|
|
615
|
-
return
|
|
616
|
-
}
|
|
617
|
-
function
|
|
618
|
-
let n =
|
|
619
|
-
if (
|
|
620
|
-
if (!
|
|
621
|
-
let t =
|
|
622
|
-
for (; t && !
|
|
623
|
-
if (
|
|
624
|
-
t =
|
|
615
|
+
return O(e) === n && (n = n.ownerDocument.body), n;
|
|
616
|
+
}
|
|
617
|
+
function Ke(e, t) {
|
|
618
|
+
let n = D(e);
|
|
619
|
+
if (he(e)) return n;
|
|
620
|
+
if (!A(e)) {
|
|
621
|
+
let t = P(e);
|
|
622
|
+
for (; t && !M(t);) {
|
|
623
|
+
if (k(t) && !We(t)) return t;
|
|
624
|
+
t = P(t);
|
|
625
625
|
}
|
|
626
626
|
return n;
|
|
627
627
|
}
|
|
628
|
-
let r =
|
|
629
|
-
for (; r &&
|
|
630
|
-
return r &&
|
|
628
|
+
let r = Ge(e, t);
|
|
629
|
+
for (; r && me(r) && We(r);) r = Ge(r, t);
|
|
630
|
+
return r && M(r) && We(r) && !ye(r) ? n : r || be(e) || n;
|
|
631
631
|
}
|
|
632
|
-
var
|
|
633
|
-
let t = this.getOffsetParent ||
|
|
632
|
+
var qe = async function(e) {
|
|
633
|
+
let t = this.getOffsetParent || Ke, n = this.getDimensions, r = await n(e.floating);
|
|
634
634
|
return {
|
|
635
|
-
reference:
|
|
635
|
+
reference: Ue(e.reference, await t(e.floating), e.strategy),
|
|
636
636
|
floating: {
|
|
637
637
|
x: 0,
|
|
638
638
|
y: 0,
|
|
@@ -641,26 +641,26 @@ var Ye = async function(e) {
|
|
|
641
641
|
}
|
|
642
642
|
};
|
|
643
643
|
};
|
|
644
|
-
function
|
|
645
|
-
return
|
|
646
|
-
}
|
|
647
|
-
var
|
|
648
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
649
|
-
getDocumentElement:
|
|
650
|
-
getClippingRect:
|
|
651
|
-
getOffsetParent:
|
|
652
|
-
getElementRects:
|
|
653
|
-
getClientRects:
|
|
654
|
-
getDimensions:
|
|
655
|
-
getScale:
|
|
656
|
-
isElement:
|
|
657
|
-
isRTL:
|
|
644
|
+
function Je(e) {
|
|
645
|
+
return N(e).direction === "rtl";
|
|
646
|
+
}
|
|
647
|
+
var Ye = {
|
|
648
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Ne,
|
|
649
|
+
getDocumentElement: O,
|
|
650
|
+
getClippingRect: Ve,
|
|
651
|
+
getOffsetParent: Ke,
|
|
652
|
+
getElementRects: qe,
|
|
653
|
+
getClientRects: Pe,
|
|
654
|
+
getDimensions: He,
|
|
655
|
+
getScale: F,
|
|
656
|
+
isElement: k,
|
|
657
|
+
isRTL: Je
|
|
658
658
|
};
|
|
659
|
-
function
|
|
659
|
+
function Xe(e, t) {
|
|
660
660
|
return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height;
|
|
661
661
|
}
|
|
662
|
-
function
|
|
663
|
-
let o = null, s, c =
|
|
662
|
+
function Ze(n, i, a) {
|
|
663
|
+
let o = null, s, c = O(n);
|
|
664
664
|
function l() {
|
|
665
665
|
var e;
|
|
666
666
|
clearTimeout(s), (e = o) == null || e.disconnect(), o = null;
|
|
@@ -675,7 +675,7 @@ function $e(n, i, a) {
|
|
|
675
675
|
}, ee = !0;
|
|
676
676
|
function S(e) {
|
|
677
677
|
let t = e[0].intersectionRatio;
|
|
678
|
-
if (!
|
|
678
|
+
if (!Xe(f, n.getBoundingClientRect())) return u();
|
|
679
679
|
if (t !== d) {
|
|
680
680
|
if (!ee) return u();
|
|
681
681
|
t ? u(!1, t) : s = setTimeout(() => {
|
|
@@ -694,18 +694,18 @@ function $e(n, i, a) {
|
|
|
694
694
|
}
|
|
695
695
|
o.observe(n);
|
|
696
696
|
}
|
|
697
|
-
let d =
|
|
697
|
+
let d = D(n), f = () => u(a);
|
|
698
698
|
return d.addEventListener("resize", f), u(!0), () => {
|
|
699
699
|
d.removeEventListener("resize", f), l();
|
|
700
700
|
};
|
|
701
701
|
}
|
|
702
|
-
function
|
|
702
|
+
function Qe(e, t, n, r) {
|
|
703
703
|
r === void 0 && (r = {});
|
|
704
|
-
let { ancestorScroll: i = !0, ancestorResize: a = !0, elementResize: o = typeof ResizeObserver == "function", layoutShift: s = typeof IntersectionObserver == "function", animationFrame: c = !1 } = r, l =
|
|
704
|
+
let { ancestorScroll: i = !0, ancestorResize: a = !0, elementResize: o = typeof ResizeObserver == "function", layoutShift: s = typeof IntersectionObserver == "function", animationFrame: c = !1 } = r, l = De(e), u = i || a ? [...l ? we(l) : [], ...t ? we(t) : []] : [];
|
|
705
705
|
u.forEach((e) => {
|
|
706
706
|
i && e.addEventListener("scroll", n), a && e.addEventListener("resize", n);
|
|
707
707
|
});
|
|
708
|
-
let d = l && s ?
|
|
708
|
+
let d = l && s ? Ze(l, n, a) : null, f = -1, p = null;
|
|
709
709
|
o && (p = new ResizeObserver((e) => {
|
|
710
710
|
let [r] = e;
|
|
711
711
|
r && r.target === l && p && t && (p.unobserve(t), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
|
|
@@ -713,11 +713,11 @@ function et(e, t, n, r) {
|
|
|
713
713
|
(e = p) == null || e.observe(t);
|
|
714
714
|
})), n();
|
|
715
715
|
}), l && !c && p.observe(l), t && p.observe(t));
|
|
716
|
-
let m, h = c ?
|
|
716
|
+
let m, h = c ? I(e) : null;
|
|
717
717
|
c && g();
|
|
718
718
|
function g() {
|
|
719
|
-
let t =
|
|
720
|
-
h && !
|
|
719
|
+
let t = I(e);
|
|
720
|
+
h && !Xe(h, t) && n(), h = t, m = requestAnimationFrame(g);
|
|
721
721
|
}
|
|
722
722
|
return n(), () => {
|
|
723
723
|
var e;
|
|
@@ -726,9 +726,9 @@ function et(e, t, n, r) {
|
|
|
726
726
|
}), d?.(), (e = p) == null || e.disconnect(), p = null, c && cancelAnimationFrame(m);
|
|
727
727
|
};
|
|
728
728
|
}
|
|
729
|
-
var
|
|
729
|
+
var $e = ce, et = le, tt = w, nt = (e, t, n) => {
|
|
730
730
|
let r = /* @__PURE__ */ new Map(), i = n ?? {}, a = {
|
|
731
|
-
...
|
|
731
|
+
...Ye,
|
|
732
732
|
...i.platform,
|
|
733
733
|
_c: r
|
|
734
734
|
};
|
|
@@ -739,28 +739,28 @@ var tt = le, nt = ue, rt = se, it = (e, t, n) => {
|
|
|
739
739
|
};
|
|
740
740
|
//#endregion
|
|
741
741
|
//#region src/helpers/author.ts
|
|
742
|
-
function
|
|
742
|
+
function rt(e) {
|
|
743
743
|
return e ? e.split(" ").map((e) => e[0] ?? "").join("").toUpperCase().slice(0, 2) : "?";
|
|
744
744
|
}
|
|
745
745
|
//#endregion
|
|
746
746
|
//#region ../../node_modules/.pnpm/@preact+signals-core@1.14.4/node_modules/@preact/signals-core/dist/signals-core.module.js
|
|
747
|
-
var
|
|
748
|
-
function
|
|
749
|
-
if (
|
|
747
|
+
var it = Symbol.for("preact-signals");
|
|
748
|
+
function at() {
|
|
749
|
+
if (R > 1) R--;
|
|
750
750
|
else {
|
|
751
751
|
var e, t = !1;
|
|
752
752
|
for ((function() {
|
|
753
|
-
var e =
|
|
754
|
-
for (
|
|
753
|
+
var e = dt;
|
|
754
|
+
for (dt = void 0; e !== void 0;) {
|
|
755
755
|
var t = e.S;
|
|
756
756
|
if (t.v === e.v) for (var n = t.t; n !== void 0; n = n.x) n.i === e.i && (n.i = t.i);
|
|
757
757
|
e = e.o;
|
|
758
758
|
}
|
|
759
|
-
})();
|
|
760
|
-
var n =
|
|
761
|
-
for (
|
|
759
|
+
})(); ct !== void 0;) {
|
|
760
|
+
var n = ct;
|
|
761
|
+
for (ct = void 0, lt++; n !== void 0;) {
|
|
762
762
|
var r = n.u;
|
|
763
|
-
if (n.u = void 0, n.f &= -3, !(8 & n.f) &&
|
|
763
|
+
if (n.u = void 0, n.f &= -3, !(8 & n.f) && mt(n)) try {
|
|
764
764
|
n.c();
|
|
765
765
|
} catch (n) {
|
|
766
766
|
t ||= (e = n, !0);
|
|
@@ -768,107 +768,107 @@ function st() {
|
|
|
768
768
|
n = r;
|
|
769
769
|
}
|
|
770
770
|
}
|
|
771
|
-
if (
|
|
771
|
+
if (lt = 0, R--, t) throw e;
|
|
772
772
|
}
|
|
773
773
|
}
|
|
774
|
-
var
|
|
775
|
-
function
|
|
776
|
-
var t =
|
|
777
|
-
|
|
774
|
+
var ot, L = void 0;
|
|
775
|
+
function st(e) {
|
|
776
|
+
var t = L, n = ot;
|
|
777
|
+
L = void 0, ot = void 0;
|
|
778
778
|
try {
|
|
779
779
|
return e();
|
|
780
780
|
} finally {
|
|
781
|
-
|
|
781
|
+
L = t, ot = n;
|
|
782
782
|
}
|
|
783
783
|
}
|
|
784
|
-
var
|
|
785
|
-
function
|
|
786
|
-
if (
|
|
784
|
+
var ct = void 0, R = 0, lt = 0, ut = 0, dt = void 0, ft = 0;
|
|
785
|
+
function pt(e) {
|
|
786
|
+
if (L !== void 0) {
|
|
787
787
|
var t = e.n;
|
|
788
|
-
if (t === void 0 || t.t !==
|
|
788
|
+
if (t === void 0 || t.t !== L) return t = {
|
|
789
789
|
i: 0,
|
|
790
790
|
S: e,
|
|
791
|
-
p:
|
|
791
|
+
p: L.s,
|
|
792
792
|
n: void 0,
|
|
793
|
-
t:
|
|
793
|
+
t: L,
|
|
794
794
|
e: void 0,
|
|
795
795
|
x: void 0,
|
|
796
796
|
r: t
|
|
797
|
-
},
|
|
798
|
-
if (t.i === -1) return t.i = 0, t.n !== void 0 && (t.n.p = t.p, t.p !== void 0 && (t.p.n = t.n), t.p =
|
|
797
|
+
}, L.s !== void 0 && (L.s.n = t), L.s = t, e.n = t, 32 & L.f && e.S(t), t;
|
|
798
|
+
if (t.i === -1) return t.i = 0, t.n !== void 0 && (t.n.p = t.p, t.p !== void 0 && (t.p.n = t.n), t.p = L.s, t.n = void 0, L.s.n = t, L.s = t), t;
|
|
799
799
|
}
|
|
800
800
|
}
|
|
801
|
-
function
|
|
801
|
+
function z(e, t) {
|
|
802
802
|
this.v = e, this.i = 0, this.n = void 0, this.t = void 0, this.l = 0, this.W = t?.watched, this.Z = t?.unwatched, this.name = t?.name;
|
|
803
803
|
}
|
|
804
|
-
|
|
804
|
+
z.prototype.brand = it, z.prototype.h = function() {
|
|
805
805
|
return !0;
|
|
806
|
-
},
|
|
806
|
+
}, z.prototype.S = function(e) {
|
|
807
807
|
var t = this, n = this.t;
|
|
808
|
-
n !== e && e.e === void 0 && (e.x = n, this.t = e, n === void 0 ?
|
|
808
|
+
n !== e && e.e === void 0 && (e.x = n, this.t = e, n === void 0 ? st(function() {
|
|
809
809
|
var e;
|
|
810
810
|
(e = t.W) == null || e.call(t);
|
|
811
811
|
}) : n.e = e);
|
|
812
|
-
},
|
|
812
|
+
}, z.prototype.U = function(e) {
|
|
813
813
|
var t = this;
|
|
814
814
|
if (this.t !== void 0) {
|
|
815
815
|
var n = e.e, r = e.x;
|
|
816
|
-
n !== void 0 && (n.x = r, e.e = void 0), r !== void 0 && (r.e = n, e.x = void 0), e === this.t && (this.t = r, r === void 0 &&
|
|
816
|
+
n !== void 0 && (n.x = r, e.e = void 0), r !== void 0 && (r.e = n, e.x = void 0), e === this.t && (this.t = r, r === void 0 && st(function() {
|
|
817
817
|
var e;
|
|
818
818
|
(e = t.Z) == null || e.call(t);
|
|
819
819
|
}));
|
|
820
820
|
}
|
|
821
|
-
},
|
|
821
|
+
}, z.prototype.subscribe = function(e) {
|
|
822
822
|
var t = this;
|
|
823
|
-
return
|
|
823
|
+
return bt(function() {
|
|
824
824
|
var n = t.value;
|
|
825
|
-
|
|
825
|
+
st(function() {
|
|
826
826
|
return e(n);
|
|
827
827
|
});
|
|
828
828
|
}, { name: "sub" });
|
|
829
|
-
},
|
|
829
|
+
}, z.prototype.valueOf = function() {
|
|
830
830
|
return this.value;
|
|
831
|
-
},
|
|
831
|
+
}, z.prototype.toString = function() {
|
|
832
832
|
return this.value + "";
|
|
833
|
-
},
|
|
833
|
+
}, z.prototype.toJSON = function() {
|
|
834
834
|
return this.value;
|
|
835
|
-
},
|
|
835
|
+
}, z.prototype.peek = function() {
|
|
836
836
|
var e = this;
|
|
837
|
-
return
|
|
837
|
+
return st(function() {
|
|
838
838
|
return e.value;
|
|
839
839
|
});
|
|
840
|
-
}, Object.defineProperty(
|
|
840
|
+
}, Object.defineProperty(z.prototype, "value", {
|
|
841
841
|
get: function() {
|
|
842
|
-
var e =
|
|
842
|
+
var e = pt(this);
|
|
843
843
|
return e !== void 0 && (e.i = this.i), this.v;
|
|
844
844
|
},
|
|
845
845
|
set: function(e) {
|
|
846
846
|
if (e !== this.v) {
|
|
847
|
-
if (
|
|
847
|
+
if (lt > 100) throw Error("Cycle detected");
|
|
848
848
|
(function(e) {
|
|
849
|
-
|
|
849
|
+
R !== 0 && lt === 0 && e.l !== ut && (e.l = ut, dt = {
|
|
850
850
|
S: e,
|
|
851
851
|
v: e.v,
|
|
852
852
|
i: e.i,
|
|
853
|
-
o:
|
|
853
|
+
o: dt
|
|
854
854
|
});
|
|
855
|
-
})(this), this.v = e, this.i++,
|
|
855
|
+
})(this), this.v = e, this.i++, ft++, R++;
|
|
856
856
|
try {
|
|
857
857
|
for (var t = this.t; t !== void 0; t = t.x) t.t.N();
|
|
858
858
|
} finally {
|
|
859
|
-
|
|
859
|
+
at();
|
|
860
860
|
}
|
|
861
861
|
}
|
|
862
862
|
}
|
|
863
863
|
});
|
|
864
|
-
function
|
|
865
|
-
return new
|
|
864
|
+
function B(e, t) {
|
|
865
|
+
return new z(e, t);
|
|
866
866
|
}
|
|
867
|
-
function
|
|
867
|
+
function mt(e) {
|
|
868
868
|
for (var t = e.s; t !== void 0; t = t.n) if (t.S.i !== t.i || !t.S.h() || t.S.i !== t.i) return !0;
|
|
869
869
|
return !1;
|
|
870
870
|
}
|
|
871
|
-
function
|
|
871
|
+
function ht(e) {
|
|
872
872
|
for (var t = e.s; t !== void 0; t = t.n) {
|
|
873
873
|
var n = t.S.n;
|
|
874
874
|
if (n !== void 0 && (t.r = n), t.S.n = t, t.i = -1, t.n === void 0) {
|
|
@@ -877,81 +877,81 @@ function gt(e) {
|
|
|
877
877
|
}
|
|
878
878
|
}
|
|
879
879
|
}
|
|
880
|
-
function
|
|
880
|
+
function gt(e) {
|
|
881
881
|
for (var t = e.s, n = void 0; t !== void 0;) {
|
|
882
882
|
var r = t.p;
|
|
883
883
|
t.i === -1 ? (t.S.U(t), r !== void 0 && (r.n = t.n), t.n !== void 0 && (t.n.p = r)) : n = t, t.S.n = t.r, t.r !== void 0 && (t.r = void 0), t = r;
|
|
884
884
|
}
|
|
885
885
|
e.s = n;
|
|
886
886
|
}
|
|
887
|
-
function
|
|
888
|
-
|
|
887
|
+
function V(e, t) {
|
|
888
|
+
z.call(this, void 0, t), this.x = e, this.s = void 0, this.g = ft - 1, this.f = 4;
|
|
889
889
|
}
|
|
890
|
-
|
|
890
|
+
V.prototype = new z(), V.prototype.h = function() {
|
|
891
891
|
if (this.f &= -3, 1 & this.f) return !1;
|
|
892
|
-
if ((36 & this.f) == 32 || (this.f &= -5, this.g ===
|
|
893
|
-
if (this.g =
|
|
894
|
-
var e =
|
|
892
|
+
if ((36 & this.f) == 32 || (this.f &= -5, this.g === ft)) return !0;
|
|
893
|
+
if (this.g = ft, this.f |= 1, this.i > 0 && !mt(this)) return this.f &= -2, !0;
|
|
894
|
+
var e = L;
|
|
895
895
|
try {
|
|
896
|
-
|
|
896
|
+
ht(this), L = this;
|
|
897
897
|
var t = this.x();
|
|
898
898
|
(16 & this.f || this.v !== t || this.i === 0) && (this.v = t, this.f &= -17, this.i++);
|
|
899
899
|
} catch (e) {
|
|
900
900
|
this.v = e, this.f |= 16, this.i++;
|
|
901
901
|
}
|
|
902
|
-
return
|
|
903
|
-
},
|
|
902
|
+
return L = e, gt(this), this.f &= -2, !0;
|
|
903
|
+
}, V.prototype.S = function(e) {
|
|
904
904
|
if (this.t === void 0) {
|
|
905
905
|
this.f |= 36;
|
|
906
906
|
for (var t = this.s; t !== void 0; t = t.n) t.S.S(t);
|
|
907
907
|
}
|
|
908
|
-
|
|
909
|
-
},
|
|
910
|
-
if (this.t !== void 0 && (
|
|
908
|
+
z.prototype.S.call(this, e);
|
|
909
|
+
}, V.prototype.U = function(e) {
|
|
910
|
+
if (this.t !== void 0 && (z.prototype.U.call(this, e), this.t === void 0)) {
|
|
911
911
|
this.f &= -33;
|
|
912
912
|
for (var t = this.s; t !== void 0; t = t.n) t.S.U(t);
|
|
913
913
|
}
|
|
914
|
-
},
|
|
914
|
+
}, V.prototype.N = function() {
|
|
915
915
|
if (!(2 & this.f)) {
|
|
916
916
|
this.f |= 6;
|
|
917
917
|
for (var e = this.t; e !== void 0; e = e.x) e.t.N();
|
|
918
918
|
}
|
|
919
|
-
}, Object.defineProperty(
|
|
919
|
+
}, Object.defineProperty(V.prototype, "value", { get: function() {
|
|
920
920
|
if (1 & this.f) throw Error("Cycle detected");
|
|
921
|
-
var e =
|
|
921
|
+
var e = pt(this);
|
|
922
922
|
if (this.h(), e !== void 0 && (e.i = this.i), 16 & this.f) throw this.v;
|
|
923
923
|
return this.v;
|
|
924
924
|
} });
|
|
925
|
-
function
|
|
926
|
-
return new
|
|
925
|
+
function H(e, t) {
|
|
926
|
+
return new V(e, t);
|
|
927
927
|
}
|
|
928
|
-
function
|
|
928
|
+
function _t(e) {
|
|
929
929
|
var t = e.m;
|
|
930
930
|
if (e.m = void 0, typeof t == "function") {
|
|
931
|
-
|
|
932
|
-
var n =
|
|
933
|
-
|
|
931
|
+
R++;
|
|
932
|
+
var n = L;
|
|
933
|
+
L = void 0;
|
|
934
934
|
try {
|
|
935
935
|
t();
|
|
936
936
|
} catch (t) {
|
|
937
|
-
throw e.f &= -2, e.f |= 8,
|
|
937
|
+
throw e.f &= -2, e.f |= 8, vt(e), t;
|
|
938
938
|
} finally {
|
|
939
|
-
|
|
939
|
+
L = n, at();
|
|
940
940
|
}
|
|
941
941
|
}
|
|
942
942
|
}
|
|
943
|
-
function
|
|
943
|
+
function vt(e) {
|
|
944
944
|
for (var t = e.s; t !== void 0; t = t.n) t.S.U(t);
|
|
945
|
-
e.x = void 0, e.s = void 0,
|
|
945
|
+
e.x = void 0, e.s = void 0, _t(e);
|
|
946
946
|
}
|
|
947
|
-
function
|
|
948
|
-
if (
|
|
949
|
-
|
|
947
|
+
function yt(e) {
|
|
948
|
+
if (L !== this) throw Error("Out-of-order effect");
|
|
949
|
+
gt(this), L = e, this.f &= -2, 8 & this.f && vt(this), at();
|
|
950
950
|
}
|
|
951
|
-
function
|
|
952
|
-
this.x = e, this.m = void 0, this.s = void 0, this.u = void 0, this.f = 32, this.name = t?.name,
|
|
951
|
+
function U(e, t) {
|
|
952
|
+
this.x = e, this.m = void 0, this.s = void 0, this.u = void 0, this.f = 32, this.name = t?.name, ot && ot.push(this);
|
|
953
953
|
}
|
|
954
|
-
|
|
954
|
+
U.prototype.c = function() {
|
|
955
955
|
var e = this.S();
|
|
956
956
|
try {
|
|
957
957
|
if (8 & this.f || this.x === void 0) return;
|
|
@@ -960,20 +960,20 @@ H.prototype.c = function() {
|
|
|
960
960
|
} finally {
|
|
961
961
|
e();
|
|
962
962
|
}
|
|
963
|
-
},
|
|
963
|
+
}, U.prototype.S = function() {
|
|
964
964
|
if (1 & this.f) throw Error("Cycle detected");
|
|
965
|
-
this.f |= 1, this.f &= -9,
|
|
966
|
-
var e =
|
|
967
|
-
return
|
|
968
|
-
},
|
|
969
|
-
2 & this.f || (this.f |= 2, this.u =
|
|
970
|
-
},
|
|
971
|
-
this.f |= 8, 1 & this.f ||
|
|
972
|
-
},
|
|
965
|
+
this.f |= 1, this.f &= -9, _t(this), ht(this), R++;
|
|
966
|
+
var e = L;
|
|
967
|
+
return L = this, yt.bind(this, e);
|
|
968
|
+
}, U.prototype.N = function() {
|
|
969
|
+
2 & this.f || (this.f |= 2, this.u = ct, ct = this);
|
|
970
|
+
}, U.prototype.d = function() {
|
|
971
|
+
this.f |= 8, 1 & this.f || vt(this);
|
|
972
|
+
}, U.prototype.dispose = function() {
|
|
973
973
|
this.d();
|
|
974
974
|
};
|
|
975
|
-
function
|
|
976
|
-
var n = new
|
|
975
|
+
function bt(e, t) {
|
|
976
|
+
var n = new U(e, t);
|
|
977
977
|
try {
|
|
978
978
|
n.c();
|
|
979
979
|
} catch (e) {
|
|
@@ -984,26 +984,26 @@ function xt(e, t) {
|
|
|
984
984
|
}
|
|
985
985
|
//#endregion
|
|
986
986
|
//#region src/lib/backoff.ts
|
|
987
|
-
function
|
|
987
|
+
function xt(e, t, n) {
|
|
988
988
|
let r = Math.min(t * 2 ** e, n);
|
|
989
989
|
return Math.floor(Math.random() * r);
|
|
990
990
|
}
|
|
991
|
-
var
|
|
991
|
+
var St = "/embed/auth/login", Ct = "popgrids-auth", wt = "popup,width=480,height=640", Tt = 300 * 1e3, Et = 250, W = class extends Error {
|
|
992
992
|
constructor(e) {
|
|
993
993
|
super(e), this.name = "PopupAuthError";
|
|
994
994
|
}
|
|
995
|
-
},
|
|
995
|
+
}, Dt = class extends W {
|
|
996
996
|
constructor(e = "Sign-in was cancelled") {
|
|
997
997
|
super(e), this.name = "PopupAuthCancelledError";
|
|
998
998
|
}
|
|
999
|
-
},
|
|
1000
|
-
let r = new URL(
|
|
999
|
+
}, Ot = (e, t, n) => {
|
|
1000
|
+
let r = new URL(St, e);
|
|
1001
1001
|
return r.searchParams.set("publicKey", t), r.searchParams.set("returnOrigin", n), r.toString();
|
|
1002
|
-
},
|
|
1003
|
-
let n = window.open(
|
|
1004
|
-
if (!n) throw new
|
|
1002
|
+
}, kt = (e, t) => {
|
|
1003
|
+
let n = window.open(Ot(e, t, window.location.origin), Ct, wt);
|
|
1004
|
+
if (!n) throw new W("Popup blocked. Allow popups for this site and try again.");
|
|
1005
1005
|
return n;
|
|
1006
|
-
},
|
|
1006
|
+
}, At = (e, t) => typeof e == "object" && !!e && "type" in e && "source" in e && e.type === t && e.source === "popgrids-embed", jt = (e) => {
|
|
1007
1007
|
if (typeof e != "object" || !e || !("user" in e)) return null;
|
|
1008
1008
|
let t = e, n = t.user;
|
|
1009
1009
|
if (typeof n != "object" || !n || !("id" in n)) return null;
|
|
@@ -1018,47 +1018,47 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1018
1018
|
token: t.token,
|
|
1019
1019
|
expiresAt: t.expiresAt
|
|
1020
1020
|
};
|
|
1021
|
-
},
|
|
1021
|
+
}, Mt = (e, t, n) => new Promise((r, i) => {
|
|
1022
1022
|
let a = new URL(e).origin, o = !1, s = (e, t) => {
|
|
1023
1023
|
if (!o) {
|
|
1024
1024
|
if (o = !0, d(), e === "resolve") {
|
|
1025
1025
|
r();
|
|
1026
1026
|
return;
|
|
1027
1027
|
}
|
|
1028
|
-
i(t ?? new
|
|
1028
|
+
i(t ?? new W("Sign-in failed"));
|
|
1029
1029
|
}
|
|
1030
1030
|
}, c = (e) => {
|
|
1031
1031
|
if (e.origin === a) {
|
|
1032
|
-
if (
|
|
1033
|
-
let t =
|
|
1032
|
+
if (At(e.data, "popgrids:auth:success")) {
|
|
1033
|
+
let t = jt(e.data);
|
|
1034
1034
|
if (!t) {
|
|
1035
|
-
s("reject", new
|
|
1035
|
+
s("reject", new W("Sign-in failed"));
|
|
1036
1036
|
return;
|
|
1037
1037
|
}
|
|
1038
1038
|
n?.onAuthSuccess?.(t), s("resolve");
|
|
1039
1039
|
return;
|
|
1040
1040
|
}
|
|
1041
|
-
if (
|
|
1041
|
+
if (At(e.data, "popgrids:auth:error")) {
|
|
1042
1042
|
let t = typeof e.data == "object" && e.data !== null && "error" in e.data && typeof e.data.error == "string" ? e.data.error : "Sign-in failed";
|
|
1043
|
-
s("reject", new
|
|
1043
|
+
s("reject", new W(t));
|
|
1044
1044
|
}
|
|
1045
1045
|
}
|
|
1046
1046
|
}, l = window.setInterval(() => {
|
|
1047
1047
|
!t.closed || o || (clearInterval(l), window.setTimeout(() => {
|
|
1048
|
-
o || s("reject", new
|
|
1049
|
-
},
|
|
1048
|
+
o || s("reject", new Dt());
|
|
1049
|
+
}, Et));
|
|
1050
1050
|
}, 300), u = window.setTimeout(() => {
|
|
1051
1051
|
try {
|
|
1052
1052
|
t.close();
|
|
1053
1053
|
} catch {}
|
|
1054
|
-
s("reject", new
|
|
1055
|
-
},
|
|
1054
|
+
s("reject", new W("Sign-in timed out"));
|
|
1055
|
+
}, Tt), d = () => {
|
|
1056
1056
|
window.removeEventListener("message", c), clearInterval(l), clearTimeout(u);
|
|
1057
1057
|
};
|
|
1058
1058
|
window.addEventListener("message", c);
|
|
1059
|
-
}),
|
|
1060
|
-
await
|
|
1061
|
-
},
|
|
1059
|
+
}), Nt = async (e, t, n) => {
|
|
1060
|
+
await Mt(e, kt(e, t), n);
|
|
1061
|
+
}, Pt = "X-PopGrids-Embed-Token", Ft = 300 * 1e3, It = "OTP_EXPIRED", Lt = "TOO_MANY_ATTEMPTS", Rt = "INVALID_OTP", zt = "Dismiss", Bt = 60, Vt = "Can’t reach PopGrids. Check your connection and try again.", Ht = 3e4, Ut = (e) => `popgrids:embed-session:${e}`, Wt = (e) => typeof e == "object" && !!e && typeof e.token == "string" && typeof e.expiresAt == "number" && !!e.user, G = class e {
|
|
1062
1062
|
static {
|
|
1063
1063
|
this.instances = /* @__PURE__ */ new Set();
|
|
1064
1064
|
}
|
|
@@ -1072,7 +1072,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1072
1072
|
}
|
|
1073
1073
|
try {
|
|
1074
1074
|
let t = JSON.parse(e);
|
|
1075
|
-
|
|
1075
|
+
Wt(t) && t.expiresAt > Date.now() && this.writeStoredSession(t);
|
|
1076
1076
|
} catch {}
|
|
1077
1077
|
}
|
|
1078
1078
|
notifySiblings(t) {
|
|
@@ -1086,19 +1086,19 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1086
1086
|
}
|
|
1087
1087
|
}
|
|
1088
1088
|
constructor(t) {
|
|
1089
|
-
this.currentUser =
|
|
1090
|
-
e.storageArea !== window.localStorage || e.key !==
|
|
1091
|
-
}, this.resolveInlineSignIn = null, this.inlineSignInPromise = null, this.apiUrl = t.apiUrl, this.publicKey = t.publicKey, this.session = this.readStoredSession(), this.currentUser.value = this.session?.user ?? null, window.addEventListener("storage", this.onStorageEvent), e.instances.add(this);
|
|
1089
|
+
this.currentUser = B(null), this.authError = B(null), this.authErrorAction = B(zt), this.authNoticeDismissals = B(0), this.authErrorRetryAt = B(null), this.authPending = B(!1), this.organizations = B([]), this.organizationsLoading = B(!1), this.authView = B("idle"), this.otpEmail = B(""), this.otpPending = B(!1), this.otpError = B(null), this.otpExpiresAt = B(null), this.session = null, this.authSocket = null, this.authReconnectAttempt = 0, this.authReconnectTimer = null, this.destroyed = !1, this.onStorageEvent = (e) => {
|
|
1090
|
+
e.storageArea !== window.localStorage || e.key !== Ut(this.publicKey) || this.applyExternalChange(e.newValue);
|
|
1091
|
+
}, this.resolveInlineSignIn = null, this.inlineSignInPromise = null, this.apiUrl = t.apiUrl, this.publicKey = t.publicKey, this.demo = t.demo ?? !1, !this.demo && (this.session = this.readStoredSession(), this.currentUser.value = this.session?.user ?? null, window.addEventListener("storage", this.onStorageEvent), e.instances.add(this));
|
|
1092
1092
|
}
|
|
1093
1093
|
destroy() {
|
|
1094
1094
|
this.destroyed = !0, this.closeAuthChannel(), window.removeEventListener("storage", this.onStorageEvent), e.instances.delete(this);
|
|
1095
1095
|
}
|
|
1096
1096
|
readStoredSession() {
|
|
1097
1097
|
try {
|
|
1098
|
-
let e = window.localStorage.getItem(
|
|
1098
|
+
let e = window.localStorage.getItem(Ut(this.publicKey));
|
|
1099
1099
|
if (!e) return null;
|
|
1100
1100
|
let t = JSON.parse(e);
|
|
1101
|
-
return
|
|
1101
|
+
return Wt(t) ? t.expiresAt <= Date.now() ? (this.clearStoredSession(), null) : t : null;
|
|
1102
1102
|
} catch {
|
|
1103
1103
|
return null;
|
|
1104
1104
|
}
|
|
@@ -1106,7 +1106,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1106
1106
|
persistSession(e) {
|
|
1107
1107
|
this.session = e;
|
|
1108
1108
|
try {
|
|
1109
|
-
window.localStorage.setItem(
|
|
1109
|
+
window.localStorage.setItem(Ut(this.publicKey), JSON.stringify(e));
|
|
1110
1110
|
} catch {}
|
|
1111
1111
|
this.notifySiblings(JSON.stringify(e));
|
|
1112
1112
|
}
|
|
@@ -1118,7 +1118,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1118
1118
|
clearStoredSession() {
|
|
1119
1119
|
this.session = null;
|
|
1120
1120
|
try {
|
|
1121
|
-
window.localStorage.removeItem(
|
|
1121
|
+
window.localStorage.removeItem(Ut(this.publicKey));
|
|
1122
1122
|
} catch {}
|
|
1123
1123
|
this.notifySiblings(null), this.organizations.value = [], this.closeAuthChannel();
|
|
1124
1124
|
}
|
|
@@ -1126,8 +1126,9 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1126
1126
|
return this.session ? this.session.expiresAt <= Date.now() ? (this.handleSignedOut(), null) : this.session.token : null;
|
|
1127
1127
|
}
|
|
1128
1128
|
async fetchWithToken(e, t = {}) {
|
|
1129
|
+
if (this.demo) throw Error("PopGrids: no requests in demo mode");
|
|
1129
1130
|
let n = new Headers(t.headers), r = this.token;
|
|
1130
|
-
return r && n.set(
|
|
1131
|
+
return r && n.set(Pt, r), fetch(new URL(e, this.apiUrl), {
|
|
1131
1132
|
...t,
|
|
1132
1133
|
headers: n
|
|
1133
1134
|
});
|
|
@@ -1181,9 +1182,9 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1181
1182
|
let { message: e, retryAfter: n } = await this.readError(t);
|
|
1182
1183
|
return t.status === 429 ? this.showRateLimited(n) : this.otpError.value = e, !1;
|
|
1183
1184
|
}
|
|
1184
|
-
return this.otpEmail.value = e, this.otpExpiresAt.value = Date.now() +
|
|
1185
|
+
return this.otpEmail.value = e, this.otpExpiresAt.value = Date.now() + Ft, this.authView.value = "code", !0;
|
|
1185
1186
|
} catch {
|
|
1186
|
-
return this.showAuthError(
|
|
1187
|
+
return this.showAuthError(Vt), !1;
|
|
1187
1188
|
} finally {
|
|
1188
1189
|
this.otpPending.value = !1;
|
|
1189
1190
|
}
|
|
@@ -1204,12 +1205,12 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1204
1205
|
});
|
|
1205
1206
|
if (!t.ok) {
|
|
1206
1207
|
let { message: e, code: n, retryAfter: r } = await this.readError(t);
|
|
1207
|
-
return t.status === 429 ? this.showRateLimited(r) : n ===
|
|
1208
|
+
return t.status === 429 ? this.showRateLimited(r) : n === Lt ? (this.expireOtp(), this.showAuthError("Too many attempts.", "Request a new code")) : n === It ? this.expireOtp() : n === Rt ? this.otpError.value = "Invalid code" : this.otpError.value = e, !1;
|
|
1208
1209
|
}
|
|
1209
1210
|
let n = await t.json();
|
|
1210
1211
|
return this.writeStoredSession(n), this.authView.value = "idle", this.otpEmail.value = "", this.otpExpiresAt.value = null, this.resolveInlineSignIn?.(!0), !0;
|
|
1211
1212
|
} catch {
|
|
1212
|
-
return this.showAuthError(
|
|
1213
|
+
return this.showAuthError(Vt), !1;
|
|
1213
1214
|
} finally {
|
|
1214
1215
|
this.otpPending.value = !1;
|
|
1215
1216
|
}
|
|
@@ -1217,7 +1218,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1217
1218
|
async requestSignIn() {
|
|
1218
1219
|
this.authError.value = null, this.authPending.value = !0;
|
|
1219
1220
|
try {
|
|
1220
|
-
return await
|
|
1221
|
+
return await Nt(this.apiUrl, this.publicKey, { onAuthSuccess: ({ user: e, token: t, expiresAt: n }) => {
|
|
1221
1222
|
this.writeStoredSession({
|
|
1222
1223
|
token: t,
|
|
1223
1224
|
expiresAt: n,
|
|
@@ -1225,7 +1226,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1225
1226
|
});
|
|
1226
1227
|
} }), this.currentUser.value !== null;
|
|
1227
1228
|
} catch (e) {
|
|
1228
|
-
return e instanceof
|
|
1229
|
+
return e instanceof Dt || this.showAuthError(e instanceof Error ? e.message : "Sign-in failed"), !1;
|
|
1229
1230
|
} finally {
|
|
1230
1231
|
this.authPending.value = !1;
|
|
1231
1232
|
}
|
|
@@ -1237,11 +1238,11 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1237
1238
|
};
|
|
1238
1239
|
}), this.inlineSignInPromise);
|
|
1239
1240
|
}
|
|
1240
|
-
showAuthError(e, t =
|
|
1241
|
+
showAuthError(e, t = zt, n) {
|
|
1241
1242
|
this.authErrorAction.value = t, this.authErrorRetryAt.value = n === void 0 ? null : Date.now() + n * 1e3, this.authError.value = e;
|
|
1242
1243
|
}
|
|
1243
1244
|
showRateLimited(e) {
|
|
1244
|
-
this.showAuthError("Too many requests.",
|
|
1245
|
+
this.showAuthError("Too many requests.", zt, e ?? Bt);
|
|
1245
1246
|
}
|
|
1246
1247
|
dismissAuthError() {
|
|
1247
1248
|
this.clearAuthError(), this.authNoticeDismissals.value += 1;
|
|
@@ -1284,7 +1285,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1284
1285
|
this.clearStoredSession(), this.currentUser.value = null, this.authView.value = "idle", t && !e?.silent && this.showAuthError("You were signed out. Sign in again to keep commenting.");
|
|
1285
1286
|
}
|
|
1286
1287
|
async connectAuthChannel() {
|
|
1287
|
-
if (this.destroyed || this.authSocket || !this.currentUser.value) return;
|
|
1288
|
+
if (this.demo || this.destroyed || this.authSocket || !this.currentUser.value) return;
|
|
1288
1289
|
let e = null, t = !1;
|
|
1289
1290
|
try {
|
|
1290
1291
|
let n = await this.fetchWithToken(`/api/v1/embed/grids/${this.publicKey}/auth/connect-ticket`, { method: "POST" });
|
|
@@ -1322,7 +1323,7 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1322
1323
|
}
|
|
1323
1324
|
scheduleAuthReconnect() {
|
|
1324
1325
|
if (this.destroyed || this.authReconnectTimer || !this.currentUser.value) return;
|
|
1325
|
-
let e =
|
|
1326
|
+
let e = xt(this.authReconnectAttempt, 1e3, Ht);
|
|
1326
1327
|
this.authReconnectAttempt += 1, this.authReconnectTimer = setTimeout(() => {
|
|
1327
1328
|
this.authReconnectTimer = null, this.connectAuthChannel();
|
|
1328
1329
|
}, e);
|
|
@@ -1330,15 +1331,15 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1330
1331
|
closeAuthChannel() {
|
|
1331
1332
|
this.authReconnectTimer &&= (clearTimeout(this.authReconnectTimer), null), this.authSocket &&= (this.authSocket.onopen = null, this.authSocket.onmessage = null, this.authSocket.onclose = null, this.authSocket.onerror = null, this.authSocket.close(), null);
|
|
1332
1333
|
}
|
|
1333
|
-
},
|
|
1334
|
-
let r =
|
|
1335
|
-
r || (r = /* @__PURE__ */ new Map(),
|
|
1336
|
-
},
|
|
1337
|
-
|
|
1338
|
-
},
|
|
1334
|
+
}, Gt = /* @__PURE__ */ new WeakMap(), Kt = (e, t, n = t.constructor) => {
|
|
1335
|
+
let r = Gt.get(e);
|
|
1336
|
+
r || (r = /* @__PURE__ */ new Map(), Gt.set(e, r)), r.set(n, t);
|
|
1337
|
+
}, qt = (e) => {
|
|
1338
|
+
Gt.delete(e);
|
|
1339
|
+
}, Jt = (e, t) => {
|
|
1339
1340
|
let n = e;
|
|
1340
1341
|
for (; n;) {
|
|
1341
|
-
let e =
|
|
1342
|
+
let e = Gt.get(n)?.get(t);
|
|
1342
1343
|
if (e) return e;
|
|
1343
1344
|
let r = n.getRootNode();
|
|
1344
1345
|
if (!(r instanceof ShadowRoot)) break;
|
|
@@ -1346,13 +1347,13 @@ var Ct = "/embed/auth/login", wt = "popgrids-auth", Tt = "popup,width=480,height
|
|
|
1346
1347
|
}
|
|
1347
1348
|
return null;
|
|
1348
1349
|
};
|
|
1349
|
-
function
|
|
1350
|
+
function K(e) {
|
|
1350
1351
|
return function(t, n) {
|
|
1351
1352
|
let r = Symbol("context_" + (e.name || "store"));
|
|
1352
1353
|
Object.defineProperty(t, n, {
|
|
1353
1354
|
get() {
|
|
1354
1355
|
if (this[r]) return this[r];
|
|
1355
|
-
let t =
|
|
1356
|
+
let t = Jt(this, e);
|
|
1356
1357
|
if (!t) throw console.error(`[Context] resolveStore failed! isConnected: ${this.isConnected}`, this), Error(`[Context] Store for key "${e.name || e}" not resolved on <${this.localName}>.`);
|
|
1357
1358
|
return this[r] = t, t;
|
|
1358
1359
|
},
|
|
@@ -1363,7 +1364,7 @@ function G(e) {
|
|
|
1363
1364
|
}
|
|
1364
1365
|
//#endregion
|
|
1365
1366
|
//#region src/styles/base.css?inline
|
|
1366
|
-
var
|
|
1367
|
+
var Yt = "@layer base{:host{box-sizing:border-box;color:var(--pop-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--pop-color-brand-midnight-100:oklch(96.58% .0161 262.75);--pop-color-brand-midnight-900:oklch(15% .03 255.43);--pop-color-brand-midnight-800:oklch(19% .05 255.43);--pop-color-brand-ocean-400:oklch(63% .19 255.43);--pop-color-brand-ocean-100:oklch(91% .05 255.43);--pop-color-brand-forest-900:oklch(38.66% .0698 180.75);--pop-color-brand-forest-700:oklch(45% .15 165.43);--pop-color-brand-forest-100:oklch(97% .04 165.43);--pop-color-brand-highlight-400:oklch(88% .25 105.43);--pop-color-brand-pumpkin-500:oklch(62% .18 45.43);--pop-color-brand-pumpkin-200:oklch(89% .08 45.43);--pop-color-brand-lemon-300:oklch(91% .12 85.43);--pop-color-brand-lemon-100:oklch(97% .04 85.43);--pop-duration-bouncy:1s;--pop-duration-card-highlight:.6s;--pop-duration-gentle:.833s;--pop-duration-menu:.4s;--pop-duration-pop-hover:.6s;--pop-duration-pop-text:.3s;--pop-duration-quick:.833s;--pop-duration-slow:1.167s;--pop-ease-bouncy:linear(0, .011, .045 1.3%, .184 2.7%, .911 7.4%, 1.153 9.4%, 1.301 11.2%, 1.342, 1.362 13%, 1.363, 1.355 14.4%, 1.306 16%, 1.028 21%, .939 23%, .89 24.7%, .876, .868 26.4%, .869, .882 29%, .907 30.5%, 1.014 35.9%, 1.038, 1.048 39.8% 41.1%, 1.043 42.5%, .995 49.3%, .987, .983 53.2%, .984 55.9%, 1.002 62.7%, 1.006 66.4%, .998 79.7%, 1);--pop-ease-card-highlight:linear(0, .008, .031 1.8%, .127 3.9%, .671 11.8%, .881 15.5%, .959, 1.02 19.2%, 1.064, 1.093 23.2%, 1.102, 1.108, 1.108, 1.104 28.7%, 1.089 31.4%, 1.038 38.1%, 1.016 41.5%, .999 45.4%, .99 49.6%, .989 55.3%, 1.001 74.9%, 1);--pop-ease-gentle:linear(0, .007, .026, .059 4.5%, .106 6.3%, .209 9.5%, .558 19.3%, .658, .742, .812, .87, .918, .957, .986 41.6%, 1.007 45.3%, 1.021 49.4%, 1.027 54% 60.9%, 1.007 83.2%, 1);--pop-ease-menu:linear(0, .0034 0.81%, .0278 2.42%, .097 4.84%, .5361 15.32%, .655 18.55%, .7314, .7964 23.39%, .8662, .9185, .9561, .9818, .9984, 1.0083 42.74%, 1.014 46.77%, 1.0145 53.22%, 1.0053 68.55%, 1.0019 77.42%, .9998 100%);--pop-ease-pop-hover:linear(0, .008, .031 1.8%, .127 3.9%, .671 11.8%, .881 15.5%, .959, 1.02 19.2%, 1.064, 1.093 23.2%, 1.102, 1.108, 1.108, 1.104 28.7%, 1.089 31.4%, 1.038 38.1%, 1.016 41.5%, .999 45.4%, .99 49.6%, .989 55.3%, 1.001 74.9%, 1);--pop-ease-pop-text:linear(0, .0051 0.99%, .0261, .0607 3.61%, .1192 5.26%, .2531 8.21%, .6509 16.1%, .7652 18.73%, .8512, .9232 23.33%, .9881 25.96%, 1.0305 28.26%, 1.0642 30.88%, 1.0782 32.53%, 1.089, 1.094 36.47%, 1.0942, 1.0896 41.07%, 1.0804 43.7%, 1.0354 53.23%, 1.0181 57.5%, 1.0061 61.44%, .9974 65.71%, .9925 70.31%, .991 75.9%, .9996 99.88%);--pop-ease-quick:linear(0, .008, .031 1.8%, .127 3.9%, .671 11.8%, .881 15.5%, .959, 1.02 19.2%, 1.064, 1.093 23.2%, 1.102, 1.108, 1.108, 1.104 28.7%, 1.089 31.4%, 1.038 38.1%, 1.016 41.5%, .999 45.4%, .99 49.6%, .989 55.3%, 1.001 74.9%, 1);--pop-ease-slow:linear(0, .005, .02 2%, .081 4.5%, .469 15.2%, .567, .65, .722 24.4%, .784, .835 31.1%, .878 34.9%, .914 39.1%, .942 43.8%, .964 49.1%, .979 55.4%, .989 62.4%, .995 71.1%, 1);--pop-shadow-xs:0px 1px 2px 0px #1018280d;--pop-shadow-sm:0px 1px 3px 0px #1018281a, 0px 1px 2px 0px #1018280f;--pop-shadow-md:0px 4px 8px -2px #1018281a, 0px 2px 4px -2px #1018280f;--pop-shadow-lg:0px 12px 16px -4px #10182814, 0px 4px 6px -2px #10182808;--pop-shadow-xl:0px 20px 24px -4px #10182814, 0px 8px 8px -4px #10182808;--pop-shadow-2xl:0px 24px 48px -12px #1018282e;--pop-shadow-3xl:0px 32px 48px -12px #10182852;--pop-shadow-4xl:0px 24px 32px -12px #10182847;--pop-radius-none:0;--pop-radius-xxs:.125rem;--pop-radius-xs:.25rem;--pop-radius-sm:.375rem;--pop-radius-md:.5rem;--pop-radius-lg:.625rem;--pop-radius-xl:.75rem;--pop-radius-2xl:1rem;--pop-radius-3xl:1.25rem;--pop-radius-4xl:1.5rem;--pop-radius-full:9999px;--pop-radius:.625rem;--pop-background:oklch(100% 0 0);--pop-foreground:oklch(0% 0 0);--pop-card:oklch(100% 0 0);--pop-card-foreground:oklch(14.5% 0 0);--pop-popover:oklch(100% 0 0);--pop-popover-foreground:oklch(0% 0 0);--pop-primary:var(--pop-color-brand-forest-900);--pop-primary-foreground:oklch(98.5% 0 0);--pop-secondary:oklch(97% 0 0);--pop-secondary-foreground:oklch(20.5% 0 0);--pop-muted:oklch(97% 0 0);--pop-muted-foreground:oklch(71.52% .0233 256.76);--pop-accent:oklch(97% 0 0);--pop-accent-foreground:oklch(20.5% 0 0);--pop-destructive:var(--color-error-600);--pop-border:oklch(11.01% .0763 264.05/.102);--pop-input:oklch(92.2% 0 0);--pop-ring:oklch(53.67% .2286 262.17);--pop-chart-1:oklch(64.6% .222 41.116);--pop-chart-2:oklch(60% .118 184.704);--pop-chart-3:oklch(39.8% .07 227.392);--pop-chart-4:oklch(82.8% .189 84.429);--pop-chart-5:oklch(76.9% .188 70.08);--pop-sidebar:oklch(98.5% 0 0);--pop-sidebar-foreground:oklch(14.5% 0 0);--pop-sidebar-primary:oklch(20.5% 0 0);--pop-sidebar-primary-foreground:oklch(98.5% 0 0);--pop-sidebar-accent:oklch(97% 0 0);--pop-sidebar-accent-foreground:oklch(20.5% 0 0);--pop-sidebar-border:oklch(92.2% 0 0);--pop-sidebar-ring:oklch(70.8% 0 0);font-family:Inter,sans-serif;font-size:16px}@media (prefers-color-scheme:dark){:host{--pop-background:oklch(15% .03 255.43);--pop-foreground:oklch(66% .006 255.43);--pop-card:oklch(20.5% 0 0);--pop-card-foreground:oklch(98.5% 0 0);--pop-popover:oklch(15% .03 255.43);--pop-popover-foreground:oklch(66% .006 255.43);--pop-primary:oklch(92.2% 0 0);--pop-primary-foreground:oklch(20.5% 0 0);--pop-secondary:oklch(26.9% 0 0);--pop-secondary-foreground:oklch(98.5% 0 0);--pop-muted:oklch(26.9% 0 0);--pop-muted-foreground:oklch(66% .006 255.43);--pop-accent:oklch(26.9% 0 0);--pop-accent-foreground:oklch(98.5% 0 0);--pop-destructive:var(--color-error-400);--pop-border:oklch(100% 0 0/.1);--pop-input:oklch(100% 0 0/.15);--pop-ring:oklch(53.67% .2286 262.17);--pop-chart-1:oklch(48.8% .243 264.376);--pop-chart-2:oklch(69.6% .17 162.48);--pop-chart-3:oklch(76.9% .188 70.08);--pop-chart-4:oklch(62.7% .265 303.9);--pop-chart-5:oklch(64.5% .246 16.439);--pop-sidebar:oklch(20.5% 0 0);--pop-sidebar-foreground:oklch(98.5% 0 0);--pop-sidebar-primary:oklch(48.8% .243 264.376);--pop-sidebar-primary-foreground:oklch(98.5% 0 0);--pop-sidebar-accent:oklch(26.9% 0 0);--pop-sidebar-accent-foreground:oklch(98.5% 0 0);--pop-sidebar-border:oklch(100% 0 0/.1);--pop-sidebar-ring:oklch(55.6% 0 0)}}:host(.dark){--pop-background:oklch(15% .03 255.43);--pop-foreground:oklch(66% .006 255.43);--pop-card:oklch(20.5% 0 0);--pop-card-foreground:oklch(98.5% 0 0);--pop-popover:oklch(15% .03 255.43);--pop-popover-foreground:oklch(66% .006 255.43);--pop-primary:oklch(92.2% 0 0);--pop-primary-foreground:oklch(20.5% 0 0);--pop-secondary:oklch(26.9% 0 0);--pop-secondary-foreground:oklch(98.5% 0 0);--pop-muted:oklch(26.9% 0 0);--pop-muted-foreground:oklch(66% .006 255.43);--pop-accent:oklch(26.9% 0 0);--pop-accent-foreground:oklch(98.5% 0 0);--pop-destructive:var(--color-error-400);--pop-border:oklch(100% 0 0/.1);--pop-input:oklch(100% 0 0/.15);--pop-ring:oklch(53.67% .2286 262.17);--pop-chart-1:oklch(48.8% .243 264.376);--pop-chart-2:oklch(69.6% .17 162.48);--pop-chart-3:oklch(76.9% .188 70.08);--pop-chart-4:oklch(62.7% .265 303.9);--pop-chart-5:oklch(64.5% .246 16.439);--pop-sidebar:oklch(20.5% 0 0);--pop-sidebar-foreground:oklch(98.5% 0 0);--pop-sidebar-primary:oklch(48.8% .243 264.376);--pop-sidebar-primary-foreground:oklch(98.5% 0 0);--pop-sidebar-accent:oklch(26.9% 0 0);--pop-sidebar-accent-foreground:oklch(98.5% 0 0);--pop-sidebar-border:oklch(100% 0 0/.1);--pop-sidebar-ring:oklch(55.6% 0 0)}*,:before,:after{box-sizing:inherit}html,body{margin:0;padding:0}svg{display:block}strong{font-weight:600}p{margin:0;padding:0}button{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.m-0{margin:0}.text-heading{font-feature-settings:\"liga\" off, \"clig\" off;letter-spacing:-.08px;text-align:center;align-self:stretch;max-width:320px;font-size:13px;font-style:normal;font-weight:600;line-height:18px}.text-xs{font-size:12px;line-height:18px}.w-full{width:100%}}", Xt = "@layer components{.btn{background-color:var(--pop-primary);color:var(--pop-primary-foreground);cursor:pointer;text-align:center;border:0;border-radius:4px;justify-content:center;align-items:center;gap:.625rem;height:auto;padding:.625rem 1.25rem;font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px;transition:background-color .2s,color .2s;display:flex}.btn:focus-visible{outline:2px solid var(--pop-ring);outline-offset:2px}}", Zt = "@layer components{.mask{-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.mask-squircle{-webkit-mask-image:url(\"data:image/svg+xml,%3csvg width='160' height='160' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M 0 80 C 0 14.12 14.12 0 80 0 C 145.88 0 160 14.12 160 80 C 160 145.88 145.88 160 80 160 C 14.12 160 0 145.88 0 80 Z'/%3e%3c/svg%3e\");mask-image:url(\"data:image/svg+xml,%3csvg width='160' height='160' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M 0 80 C 0 14.12 14.12 0 80 0 C 145.88 0 160 14.12 160 80 C 160 145.88 145.88 160 80 160 C 14.12 160 0 145.88 0 80 Z'/%3e%3c/svg%3e\")}}", Qt = !1, $t = /* @__PURE__ */ new Set(), en = null, q = null;
|
|
1367
1368
|
function tn() {
|
|
1368
1369
|
if (typeof window > "u" || typeof document > "u") return !1;
|
|
1369
1370
|
let e = document.documentElement.classList.contains("dark") || document.body.classList.contains("dark"), t = document.documentElement.classList.contains("light") || document.body.classList.contains("light");
|
|
@@ -1371,8 +1372,8 @@ function tn() {
|
|
|
1371
1372
|
}
|
|
1372
1373
|
function nn() {
|
|
1373
1374
|
let e = tn();
|
|
1374
|
-
e !==
|
|
1375
|
-
let t =
|
|
1375
|
+
e !== Qt && (Qt = e, $t.forEach((e) => {
|
|
1376
|
+
let t = Qt || !!e.closest(".dark");
|
|
1376
1377
|
e.classList.toggle("dark", t);
|
|
1377
1378
|
}));
|
|
1378
1379
|
}
|
|
@@ -1381,20 +1382,20 @@ var rn = () => {
|
|
|
1381
1382
|
};
|
|
1382
1383
|
function an(e) {
|
|
1383
1384
|
if (typeof window > "u" || typeof document > "u") return;
|
|
1384
|
-
|
|
1385
|
+
$t.size === 0 && (Qt = tn(), en = new MutationObserver(() => {
|
|
1385
1386
|
nn();
|
|
1386
|
-
}),
|
|
1387
|
+
}), en.observe(document.documentElement, {
|
|
1387
1388
|
attributes: !0,
|
|
1388
1389
|
attributeFilter: ["class"]
|
|
1389
|
-
}),
|
|
1390
|
+
}), en.observe(document.body, {
|
|
1390
1391
|
attributes: !0,
|
|
1391
1392
|
attributeFilter: ["class"]
|
|
1392
|
-
}), q = window.matchMedia("(prefers-color-scheme: dark)"), q.addEventListener("change", rn)),
|
|
1393
|
-
let t =
|
|
1393
|
+
}), q = window.matchMedia("(prefers-color-scheme: dark)"), q.addEventListener("change", rn)), $t.add(e);
|
|
1394
|
+
let t = Qt || !!e.closest(".dark");
|
|
1394
1395
|
e.classList.toggle("dark", t);
|
|
1395
1396
|
}
|
|
1396
1397
|
function on(e) {
|
|
1397
|
-
|
|
1398
|
+
$t.delete(e), $t.size === 0 && (en &&= (en.disconnect(), null), q &&= (q.removeEventListener("change", rn), null));
|
|
1398
1399
|
}
|
|
1399
1400
|
//#endregion
|
|
1400
1401
|
//#region src/components/base-element.ts
|
|
@@ -1402,7 +1403,7 @@ function J(e) {
|
|
|
1402
1403
|
let t = new CSSStyleSheet();
|
|
1403
1404
|
return t.replaceSync(e), t;
|
|
1404
1405
|
}
|
|
1405
|
-
var sn = J(
|
|
1406
|
+
var sn = J(Yt), cn = J(Xt), ln = J(Zt), Y = class extends HTMLElement {
|
|
1406
1407
|
get styleSheets() {
|
|
1407
1408
|
return [];
|
|
1408
1409
|
}
|
|
@@ -1419,10 +1420,10 @@ var sn = J(Xt), cn = J(Zt), ln = J(Qt), Y = class extends HTMLElement {
|
|
|
1419
1420
|
typeof this[r] == "function" && this[r](n, t);
|
|
1420
1421
|
}
|
|
1421
1422
|
addEffect(e) {
|
|
1422
|
-
this._disposables.push(
|
|
1423
|
+
this._disposables.push(bt(e));
|
|
1423
1424
|
}
|
|
1424
1425
|
connectedCallback() {
|
|
1425
|
-
an(this),
|
|
1426
|
+
an(this), st(() => {
|
|
1426
1427
|
this.render(), this._bindEvents(), this.setupEffects();
|
|
1427
1428
|
});
|
|
1428
1429
|
}
|
|
@@ -1504,7 +1505,7 @@ var un = J("\n :host {\n display: block;\n\n --pop-switcher-hover: rgba(0
|
|
|
1504
1505
|
setupEffects() {
|
|
1505
1506
|
this.addEffect(() => {
|
|
1506
1507
|
let e = this.authStore.currentUser.value, t = this.authStore.organizations.value, n = this.getElement(X("avatar"));
|
|
1507
|
-
if (n && (n.setAttribute("data-color-key", e?.id ?? e?.name ?? ""), n.innerHTML = e?.image ? `<img src="${e.image}" alt="${e.name ?? "User"}'s avatar">` :
|
|
1508
|
+
if (n && (n.setAttribute("data-color-key", e?.id ?? e?.name ?? ""), n.innerHTML = e?.image ? `<img src="${e.image}" alt="${e.name ?? "User"}'s avatar">` : rt(e?.name)), !e) {
|
|
1508
1509
|
this.closeDropdown();
|
|
1509
1510
|
return;
|
|
1510
1511
|
}
|
|
@@ -1530,12 +1531,12 @@ var un = J("\n :host {\n display: block;\n\n --pop-switcher-hover: rgba(0
|
|
|
1530
1531
|
if (e && t) {
|
|
1531
1532
|
e.classList.add("is-open");
|
|
1532
1533
|
let n = () => {
|
|
1533
|
-
|
|
1534
|
+
nt(t, e, {
|
|
1534
1535
|
placement: "bottom-start",
|
|
1535
1536
|
middleware: [
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1537
|
+
$e(4),
|
|
1538
|
+
tt(),
|
|
1539
|
+
et({ padding: 8 })
|
|
1539
1540
|
],
|
|
1540
1541
|
strategy: "fixed"
|
|
1541
1542
|
}).then(({ x: t, y: n, placement: r }) => {
|
|
@@ -1548,7 +1549,7 @@ var un = J("\n :host {\n display: block;\n\n --pop-switcher-hover: rgba(0
|
|
|
1548
1549
|
e.style.setProperty("--switcher-origin", i ? "bottom left" : "top left"), e.style.setProperty("--switcher-slide-y", i ? "6px" : "-6px");
|
|
1549
1550
|
});
|
|
1550
1551
|
};
|
|
1551
|
-
this._floatingCleanup =
|
|
1552
|
+
this._floatingCleanup = Qe(t, e, n), document.addEventListener("mousedown", this._onOutsideClick);
|
|
1552
1553
|
}
|
|
1553
1554
|
}
|
|
1554
1555
|
closeDropdown() {
|
|
@@ -1576,7 +1577,7 @@ var un = J("\n :host {\n display: block;\n\n --pop-switcher-hover: rgba(0
|
|
|
1576
1577
|
return "\n <div class=\"switcher\">\n <button\n class=\"switcher__trigger\"\n data-ref=\"trigger\"\n type=\"button\"\n aria-label=\"Account options\"\n >\n <pop-comment-avatar size=\"xs\" data-ref=\"avatar\"></pop-comment-avatar>\n </button>\n <div class=\"switcher__dropdown\" data-ref=\"dropdown\"></div>\n </div>\n ";
|
|
1577
1578
|
}
|
|
1578
1579
|
};
|
|
1579
|
-
Z([G
|
|
1580
|
+
Z([K(G)], dn.prototype, "authStore", void 0), customElements.get("pop-account-switcher") || customElements.define("pop-account-switcher", dn);
|
|
1580
1581
|
//#endregion
|
|
1581
1582
|
//#region src/components/pop-auth-code.ts
|
|
1582
1583
|
var fn = 6, pn = J("\n :host {\n border-top: 1px solid var(--pop-sidebar-border);\n display: block;\n padding: 20px 24px;\n font-family: Inter, sans-serif;\n text-align: center;\n }\n\n .code__body {\n align-items: center;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n gap: 8px;\n justify-content: center;\n }\n\n .code__container {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 16px;\n justify-content: center;\n }\n\n .code__heading {\n color: var(--pop-foreground);\n font-feature-settings:\n \"liga\" off,\n \"clig\" off;\n font-size: 13px;\n font-weight: 600;\n letter-spacing: -0.08px;\n line-height: 18px;\n margin: 0;\n }\n\n .code__digits {\n display: flex;\n gap: 6px;\n justify-content: center;\n }\n\n .code__digits .code__digit:nth-child(3) {\n margin-right: 10px;\n }\n\n .code__digit {\n -webkit-appearance: none;\n appearance: none;\n background: var(--pop-background);\n border-radius: var(--pop-radius-md, 8px);\n border: 1px solid color-mix(in srgb, var(--pop-foreground) 56%, transparent);\n color: var(--pop-foreground);\n font-family: inherit;\n font-size: 24px;\n font-weight: 500;\n height: 40px;\n line-height: 36px;\n text-align: center;\n width: 40px;\n }\n\n .code__digit:focus-visible {\n border: 2px solid var(--pop-foreground);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--pop-ring, #155eef) 60%, transparent);\n outline: none;\n }\n\n .code__digit:disabled {\n opacity: 0.6;\n }\n\n .code__copy,\n .code__expiry {\n color: var(--pop-foreground);\n font-size: 12px;\n line-height: 18px;\n margin: 0;\n }\n\n .code__error {\n color: var(--pop-auth-error, #dc2626);\n font-size: 12px;\n line-height: 16px;\n }\n\n .code__footer {\n align-items: center;\n display: flex;\n justify-content: space-between;\n width: 100%;\n }\n\n .code__expiry strong {\n font-weight: 600;\n }\n"), mn = class extends Y {
|
|
@@ -1680,7 +1681,7 @@ var fn = 6, pn = J("\n :host {\n border-top: 1px solid var(--pop-sidebar-bor
|
|
|
1680
1681
|
`;
|
|
1681
1682
|
}
|
|
1682
1683
|
};
|
|
1683
|
-
Z([G
|
|
1684
|
+
Z([K(G)], mn.prototype, "authStore", void 0), customElements.get("pop-auth-code") || customElements.define("pop-auth-code", mn);
|
|
1684
1685
|
//#endregion
|
|
1685
1686
|
//#region src/assets/apple-icon.png?inline
|
|
1686
1687
|
var hn = "data:image/png;base64,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", gn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZpZ21hnrGWYwAABgBJREFUeAHtm09oHFUcx79vZtamIaFbaGpF0FFBBItuMIEoSGdtC/VkWkWNl6RePWxzbIt0g5YeBE28emhykLYo7XqQCqbZKQiGJuAWT0XEOdlirdmY5k93d+b5e9PEbreZ2Tezs9td3Q8ku7PzZ9/v+36/N7/5vbdAmzZt2rT5/8LQABYGjbi9tGJwxveAM52BJwAe52Dxew3hec6YBY48beQYZ5fVmJLb/t2shTpSNwGE0aW/V1Jg3KBNA2EhMei/qWnqRD3EiFyAm/sGDHAnRT08iMhhGTBlomd61kRERCbAwoEB3S7aJzgwgjpDjZ5UY+pYFB4RiQC39vanOHi6PKYbAmfpnpkrY6iBmgRw43xp+QJqifGaYRktpoyG9YbQAqy7fJZcXsdDhoyw1O5i7/ZMLo+AKAhBMxkvsDmbCmO8ILAHNJvxDmdjj85cSSMkgQT4rxkv0IIcXCrap1GD8SJWHeAbRUHOKSJnQ80/Zs5a140BXYUdV1RHd6AYjIEyRiT8rsU5DpPxk6gRaQ+4ta/vBCmeRhgYTGryWM/0vCl7yh9GfwIqjlADhyv3CeN3zsxNIgKkBBCuT73/GwJCuX2OwRkNYnglrneoTpaeFXT3mhEaL5C6C5SKzmcICI0TE8ulzmQtxgtEiMTsQi8JOcFt9EZpvKCqB6x+ETdWLj6ZdRYfgSxRDE6NoqoAxelYll6M1enHcWeup9rhLWW8wFeA1WyHrtn3Yl8IsPbDLvA11eNiPLPj0vxBtBC+YwAZf6R8e0v/TXS/fw3KtsIDx9KDkFW0tVG0GL4CcIY3HjiBjBciCDHuP5iPiQELLYZnCBSysQSz8RN8ECEhxgbR+zsvXXkKLYh3Juj4Z2IC4QWxZxexcl430aJ4CsB4dQEEIiS6Rn6dwpcIxWsnb49Q6juMOkLJ09TM8a7Jzfb5PQu8CDnysf1rJkLDdc6ZgTpC1apFepncbJ/nIEgDoA45cmhyGJhnZ3oKQCGgQ+7iFpofz1plqIpQOevu1ezUT4BWx08AqRobhcA2tDB+g6CUANyd52t6PG3xGwRlq6w6mh9PWzzzAEpvrzK53o0Xv+8wQucCjInGWQiD7J2KeV/fOxFi3KQvqJqh/VLahk9WXqCJ0BkTIZg51jVOL+MIAWWRC/AZ4f+F86teuzxDwFZUE1U4t/oMPlh8BT8Xtg8nLgw2dF5w/8nbwjulvtNdd+CBpwBbk2sW93CdJR7D+PJu+nvefS8aoq1pR9BAqLyekj1WsblntuqbBzCHT1V+dt3uxHB+D/X+0xUH89TAmXd1NIADp1Z16hxD8vD89IfdptdO/4KIxjLl29/eecI1XoiwCfESK55GAyhwOyU7ABIZv52+AjySLLrLUzZc/uOlxIbLe2H0nTt0AnVk70fLg2S8dLgpm3hxOVWrwj9e3GV8vrw7K0Z7aRhPz79zvqaFC5shXL/glKhKJb0Qw6I6gG+lquqzwMuv3zDJeBNBoCm0/nOHAk+m+LHv1JIR0HhB1U6QmhobODOol5gaeGrMXbjAY8nZobMWQmLQ7fV2QUl1W5+mWWlHkFOr9v56G+XoO/sWxR0P1atiURNVfabmh742Zc9xDb+jjVA2mhLT8QoZv+WvQcSWXpW9xGGvMlhF2+TpO/umO0uEkAiPoLw044BfVphiqbaaF96xcfssKsUE44zec1GO3zTRESJsWfCfe6HU17x0rCsJuTbJI0LBZupDXyCh0u2480YKHiFhOYqaNI9utSBB4CUyzSKCCImOP9+DtvzSfZ9ThthrHu+SrlOGWiXWLCIIKkJCKu7LCb1MrplE0FafQ+fvRwMbLwhdE5wdytAtzk6ShBk8RMTAWuq4lgxj/Pr5tbN+ixQpcGOXyoKZGtcO15JnRLZY2g0JqGle52mudfKM89G5ofOTqJHIl8vXWYg8pdkTXR2lcfNgJtTK0EoiF2CDu0IoBmcKCeH+aCIseWpkJmgmKUvdBChHiFFU1ITCYfC783Rx3F32Vj5m5LlrLLMo/bXcoqzCzLm3v2r6ucc2bdq0adOq/AOylmoer966HwAAAABJRU5ErkJggg==", _n = "<svg\n width=\"100\"\n height=\"16\"\n viewBox=\"0 0 75 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M4.58333 0.265686C1.0463 0.265686 0 2.5714 0 5.47711C0 6.55283 0.115741 7.6114 0.25 8.67426C0.300926 9.08997 0.282407 9.54854 0.365741 9.96426C0.583333 11.0571 1.69444 11.5628 2.77315 11.5628C4.25 11.5628 5.23148 10.7014 5.23148 9.3214C5.23148 8.52426 4.94907 8.0014 4.13426 7.69283C4.08333 7.67569 4.03241 7.66283 4.03241 7.59854C4.03241 7.4914 4.21759 7.41426 4.33333 7.41426C4.73148 7.41426 5.36111 7.78283 5.91204 7.78283C8.06944 7.78283 9.26389 5.86283 9.26389 4.06283C9.26389 1.44854 7.18518 0.265686 4.58333 0.265686ZM4.56481 5.91854C4.43056 5.91854 4.31481 5.8114 4.31481 5.68711C4.31481 5.51997 4.56481 5.39569 4.64815 5.25854C4.8287 4.94997 4.87963 4.42711 4.87963 4.07569C4.87963 3.65997 4.76389 2.89283 4.48148 2.58426C4.39815 2.49426 4.28241 2.44711 4.28241 2.32283C4.28241 2.19854 4.41667 2.0914 4.5463 2.0914C5.11111 2.0914 5.39352 3.62997 5.39352 4.02854C5.39352 4.45711 5.24537 5.91854 4.56481 5.91854Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M14.9259 0.527108C11.4074 0.527108 9.2963 2.83282 9.2963 5.99568C9.2963 9.15854 11.4028 11.4643 14.9259 11.4643C18.4491 11.4643 20.537 9.12854 20.537 5.99568C20.537 2.86282 18.412 0.527108 14.9259 0.527108ZM15.0787 9.89997C15.0232 9.96425 14.912 10.0843 14.7778 10.0843C14.6435 10.0843 14.5139 9.97711 14.5139 9.85282C14.5139 9.80568 14.9445 9.20568 15.0139 9.02139C15.2778 8.29711 15.3287 7.51282 15.3287 6.74568C15.3287 5.71711 15.1296 4.39282 14.4491 3.54854C14.3148 3.39425 13.9028 3.10282 13.9028 2.93568C13.9028 2.81139 14.0185 2.70425 14.1528 2.70425C14.2685 2.70425 14.3843 2.79854 14.4676 2.85854C15.5278 3.67282 15.8472 5.53282 15.8472 6.74568C15.8472 7.69711 15.8056 9.08568 15.0833 9.89568L15.0787 9.89997Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M25.375 0.265686C21.838 0.265686 20.7917 2.5714 20.7917 5.47711C20.7917 6.55283 20.9074 7.6114 21.0417 8.67426C21.0926 9.08997 21.0741 9.54854 21.1574 9.96426C21.375 11.0571 22.4861 11.5628 23.5648 11.5628C25.0417 11.5628 26.0231 10.7014 26.0231 9.3214C26.0231 8.52426 25.7407 8.0014 24.9259 7.69283C24.875 7.67569 24.8241 7.66283 24.8241 7.59854C24.8241 7.4914 25.0092 7.41426 25.125 7.41426C25.5231 7.41426 26.1528 7.78283 26.7037 7.78283C28.8611 7.78283 30.0555 5.86283 30.0555 4.06283C30.0555 1.44854 27.9815 0.265686 25.375 0.265686ZM25.3611 5.91854C25.2268 5.91854 25.1111 5.8114 25.1111 5.68711C25.1111 5.51997 25.3611 5.39569 25.4444 5.25854C25.625 4.94997 25.6759 4.42711 25.6759 4.07569C25.6759 3.65997 25.5602 2.89283 25.2778 2.58426C25.1944 2.49426 25.0787 2.44711 25.0787 2.32283C25.0787 2.19854 25.213 2.0914 25.3426 2.0914C25.9074 2.0914 26.1898 3.62997 26.1898 4.02854C26.1898 4.45711 26.0417 5.91854 25.3611 5.91854Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M37.3843 4.81284C36.1898 4.81284 34.5278 5.31855 34.5278 6.64284C34.5278 7.39713 35.125 8.5157 36.0741 8.5157C36.6713 8.5157 37.0556 8.08713 37.2546 8.08713C37.3056 8.08713 37.3519 8.11713 37.3519 8.16427C37.3519 8.60998 36.4213 8.81141 36.0556 8.81141C34.7778 8.81141 34.0972 7.7957 34.0972 6.71998C34.0972 5.39998 35.4398 4.38427 36.8009 4.38427C37.1991 4.38427 37.6158 4.49141 38.0139 4.49141C39.1945 4.49141 40.0371 3.50998 40.0371 2.46427C40.0371 0.728554 37.8148 0.329982 36.3333 0.329982C32.3982 0.329982 30.1065 2.6957 30.1065 6.29141C30.1065 9.61284 31.9676 11.73 35.6528 11.73C38.0417 11.73 40.6482 10.7786 40.6482 8.19427C40.6482 6.42855 39.4028 4.81284 37.3796 4.81284H37.3843Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M48.3611 7.42711C48.0602 7.42711 47.8148 7.53426 47.5648 7.53426C47.5139 7.53426 47.5 7.48711 47.5 7.45712C47.5 7.34997 47.5509 7.30283 47.6342 7.27283C47.9167 7.18283 48.2176 7.11854 48.4954 6.99426C49.7592 6.4414 50.5046 5.45569 50.5046 4.15283C50.5046 1.79997 48.3287 0.372829 45.9398 0.372829C45.0741 0.372829 44.2315 0.604257 43.5 0.972829C41.5092 1.9714 41.125 3.40283 41.0092 5.35283C40.9583 6.11997 40.9583 6.8914 40.9583 7.65854V9.51854C40.9583 10.6843 41.787 11.6228 43.0972 11.6228C44.0416 11.6228 44.8889 10.9928 45.1065 10.1614C45.2222 9.66854 45.1574 9.08569 45.1574 8.60997C45.1574 8.56283 45.1759 8.54997 45.2222 8.54997C45.2685 8.54997 45.3241 8.57997 45.3565 8.59711C45.9398 9.90426 46.7361 11.5628 48.5417 11.5628C49.787 11.5628 50.8148 10.7485 50.8148 9.56569C50.8148 8.38283 49.6204 7.4314 48.3565 7.4314L48.3611 7.42711ZM45.6574 5.91854C45.5231 5.91854 45.4074 5.8114 45.4074 5.68711C45.4074 5.51997 45.6574 5.39569 45.7407 5.25854C45.9213 4.94997 45.9722 4.42711 45.9722 4.07569C45.9722 3.65997 45.8565 2.89283 45.5741 2.58426C45.4907 2.49426 45.3935 2.44711 45.3935 2.32283C45.3935 2.19854 45.5092 2.0914 45.6435 2.0914C46.2083 2.0914 46.4907 3.62997 46.4907 4.02854C46.4907 4.45711 46.3565 5.91854 45.662 5.91854H45.6574Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M54.8056 0.865677C54.4074 0.621391 53.8426 0.497105 53.3611 0.497105C52.3148 0.497105 51.4167 1.26425 51.3009 2.21996C51.2685 2.49853 51.2824 2.75996 51.2824 3.05139V5.66139L51.2315 8.41282V9.77996C51.2315 10.8557 52.2269 11.7 53.375 11.7C54.2222 11.7 55.1528 11.2071 55.4676 10.47C55.6482 10.0542 55.6667 9.47139 55.6667 9.02568V7.82568L55.6852 5.42996V3.03425C55.6852 2.14282 55.6667 1.43568 54.8056 0.865677Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M58.9445 0.402828C57.25 0.402828 56.4028 1.13997 56.4028 2.7214V3.3514L56.4213 4.59426V5.22426C56.4213 5.69997 56.4213 6.14568 56.4028 6.6214C56.3704 7.1914 56.287 7.75711 56.287 8.34426C56.287 10.4957 57.4815 11.5414 59.7917 11.5414C63.3426 11.5414 65.75 10.1271 65.75 6.60854C65.75 2.36568 63.5417 0.398542 58.9445 0.398542V0.402828ZM60.537 8.9014C60.4028 8.9014 60.287 8.79426 60.287 8.66997C60.287 8.62283 60.3056 8.59283 60.338 8.54568C60.7685 7.88568 60.8843 6.96426 60.8843 6.20997C60.8843 5.50283 60.8009 4.45711 60.3194 3.90426C60.2361 3.77997 60.0695 3.68997 60.0695 3.53569C60.0695 3.4114 60.1852 3.30426 60.3194 3.30426C60.5694 3.30426 60.9167 3.88711 61.0185 4.08854C61.3333 4.76569 61.3843 5.50283 61.3843 6.22283C61.3843 6.66854 61.1343 8.89711 60.537 8.89711V8.9014Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M73.5046 5.85855C72.5417 5.78141 71.162 5.47284 70.4167 4.88998C70.3194 4.81284 70.1528 4.7057 70.1528 4.56855C70.1528 4.52141 70.1713 4.44427 70.2361 4.44427C70.4167 4.44427 71.5787 5.3057 72.5787 5.3057C73.8426 5.3057 75 4.39713 75 3.20141C75 1.23427 72.1806 0.437125 70.4676 0.437125C67.9259 0.437125 66.037 1.95855 66.037 4.37141C66.037 4.89427 66.1204 5.61427 66.537 6.01713C66.7361 6.21855 67.0694 6.21855 67.3333 6.21855C68.3287 6.21855 69.5926 6.50998 70.1204 7.35427C70.1713 7.43141 70.2176 7.5557 70.2176 7.6457C70.2176 7.6757 70.2176 7.72284 70.1852 7.7057C70.088 7.6757 70.0046 7.59855 69.9352 7.53855C69.3519 7.0157 68.5555 6.49284 67.713 6.49284C66.4491 6.49284 66.0046 7.6157 66.0046 8.59713C66.0046 10.5771 67.9306 11.67 69.8889 11.67C72.213 11.67 75 10.2557 75 7.84284C75 6.95141 74.5833 5.95284 73.5046 5.86284V5.85855Z\"\n fill=\"currentColor\"\n />\n</svg>", vn = /^[^\s@]+@[^\s@]+\.[^\s@]+$/, yn = J("\n :host {\n display: block;\n padding: 20px 24px;\n border-top: 1px solid var(--pop-sidebar-border);\n background: var(--pop-background);\n }\n\n .email__container {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n .email__logo {\n color: var(--pop-foreground);\n display: flex;\n justify-content: center;\n }\n\n .email__form {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .email__input {\n -webkit-appearance: none;\n appearance: none;\n background: var(--pop-background);\n border: 1px solid var(--pop-input);\n border-radius: 6px;\n color: var(--pop-foreground);\n font-family: inherit;\n font-size: 14px;\n padding: 10px 12px;\n width: 100%;\n height: 40px;\n }\n\n .email__input::placeholder {\n color: var(--pop-muted-foreground);\n }\n\n .email__input:focus-visible {\n outline: 2px solid var(--pop-ring);\n outline-offset: -1px;\n }\n\n .email__submit {\n width: 100%;\n }\n\n .email__socials {\n align-items: center;\n display: flex;\n gap: 32px;\n justify-content: center;\n }\n\n .email__social {\n align-items: center;\n cursor: pointer;\n display: flex;\n height: 32px;\n justify-content: center;\n padding: 0;\n width: 32px;\n transition: transform 0.15s ease-out;\n }\n\n .email__social:hover {\n transform: scale(1.125);\n }\n\n .email__social img {\n width: 100%;\n height: 100%;\n }\n\n .email__error {\n color: var(--pop-auth-error, #dc2626);\n font-size: 12px;\n line-height: 16px;\n text-align: center;\n }\n\n .email__about {\n display: block;\n color: var(--pop-muted-foreground);\n font-size: 12px;\n text-align: center;\n margin-top: 14px;\n text-decoration: none;\n }\n\n .email__about:hover {\n color: var(--pop-foreground);\n }\n"), bn = class extends Y {
|
|
@@ -1789,7 +1790,7 @@ var hn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAA
|
|
|
1789
1790
|
`;
|
|
1790
1791
|
}
|
|
1791
1792
|
};
|
|
1792
|
-
Z([G
|
|
1793
|
+
Z([K(G)], bn.prototype, "authStore", void 0), customElements.get("pop-auth-email") || customElements.define("pop-auth-email", bn);
|
|
1793
1794
|
//#endregion
|
|
1794
1795
|
//#region src/components/pop-auth-join.ts
|
|
1795
1796
|
var xn = J("\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .auth-join {\n -webkit-appearance: none;\n align-items: flex-start;\n appearance: none;\n background-color: lightgray;\n background-color: var(--pop-background, #fff);\n background-image: url(\"data:image/gif;base64,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\"), none;\n background-position: calc(100% - 88px) center;\n background-repeat: no-repeat, repeat;\n background-size:\n 8.215% 59.149%,\n auto;\n border: none;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 6px);\n justify-content: flex-end;\n padding: 16px 8px;\n width: 100%;\n }\n\n /* Keyboard users still get a ring when they Tab here, drawn inside the bar\n so the feed's overflow:hidden can't clip it. A programmatic hand-back\n of focus (restoreFocus, after Esc/Back from a card) opts out via\n data-restored: the visitor didn't navigate here, and the ring around\n the whole bar read as an error state. */\n .auth-join:focus-visible {\n outline: 2px solid var(--pop-ring);\n outline-offset: -2px;\n }\n\n :host([data-restored]) .auth-join:focus-visible {\n outline: none;\n }\n\n .auth-join__actions {\n align-items: center;\n align-self: stretch;\n color: var(--pop-foreground, #000);\n display: flex;\n font-family: Inter, sans-serif;\n font-feature-settings:\n \"liga\" off,\n \"clig\" off;\n font-size: 13px;\n font-weight: 600;\n justify-content: space-between;\n letter-spacing: -0.08px;\n line-height: 18px;\n padding: 0px 8px;\n }\n\n .auth-join__logo {\n align-items: center;\n color: var(--pop-foreground, #000);\n display: flex;\n flex-direction: column;\n height: 12px;\n justify-content: center;\n padding: 0;\n pointer-events: none;\n width: 75px;\n }\n"), Sn = class extends Y {
|
|
@@ -1835,7 +1836,7 @@ var xn = J("\n :host {\n display: flex;\n flex-direction: column;\n wi
|
|
|
1835
1836
|
`;
|
|
1836
1837
|
}
|
|
1837
1838
|
};
|
|
1838
|
-
Z([G
|
|
1839
|
+
Z([K(G)], Sn.prototype, "authStore", void 0), customElements.get("pop-auth-join") || customElements.define("pop-auth-join", Sn);
|
|
1839
1840
|
//#endregion
|
|
1840
1841
|
//#region src/components/pop-auth-no-code.ts
|
|
1841
1842
|
var Cn = J("\n :host {\n border-top: 1px solid var(--pop-sidebar-border);\n display: block;\n padding: 20px 24px;\n font-family: Inter, sans-serif;\n text-align: center;\n }\n\n .no-code__body {\n align-items: flex-start;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .no-code__container {\n display: flex;\n flex-direction: column;\n gap: 16px;\n justify-content: center;\n align-items: center;\n }\n\n .no-code__list {\n list-style: none;\n margin: 0;\n padding: 0;\n text-align: left;\n }\n\n .no-code__footer {\n align-items: center;\n display: flex;\n justify-content: space-between;\n width: 100%;\n }\n"), wn = class extends Y {
|
|
@@ -1870,7 +1871,7 @@ var Cn = J("\n :host {\n border-top: 1px solid var(--pop-sidebar-border);\n
|
|
|
1870
1871
|
return "\n <div\n class=\"no-code__container text-xs\"\n role=\"group\"\n aria-labelledby=\"no-code-title\"\n >\n <p class=\"text-heading m-0\" id=\"no-code-title\" tabindex=\"-1\">Steps to Take</p>\n <div class=\"no-code__body\">\n <ul class=\"no-code__list\">\n <li><strong>Check spam/junk</strong> – it might be there.</li>\n <li><strong>Verify email</strong> – check your email for typos.</li>\n <li><strong>Wait a moment</strong> – emails take a few mins.</li>\n <li><strong>Whitelist us</strong> – it may be blocked.</li>\n </ul>\n <p class=\"m-0\">Still no code?</p>\n </div>\n <div class=\"no-code__footer\">\n <pop-button-link data-ref=\"back\" size=\"sm\" theme=\"default\">Back</pop-button-link>\n <pop-button-link\n class=\"no-code__contact\"\n size=\"sm\"\n theme=\"default\"\n href=\"mailto:hello@popgrids.io?subject=Verification%20Code%20Issue\"\n >Contact Support</pop-button-link\n >\n <pop-button-link data-ref=\"resend\" size=\"sm\" theme=\"default\" primary>\n Resend Code\n </pop-button-link>\n </div>\n </div>\n ";
|
|
1871
1872
|
}
|
|
1872
1873
|
};
|
|
1873
|
-
Z([G
|
|
1874
|
+
Z([K(G)], wn.prototype, "authStore", void 0), customElements.get("pop-auth-no-code") || customElements.define("pop-auth-no-code", wn);
|
|
1874
1875
|
//#endregion
|
|
1875
1876
|
//#region src/assets/watermark@2x.png
|
|
1876
1877
|
var Tn = "data:image/png;base64,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", En = J("\n :host {\n display: block;\n position: relative;\n\n --pop-auth-border: var(--pop-border, rgba(0, 0, 32, 0.04));\n --pop-auth-logo: rgba(0, 0, 32, 0.35);\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n --pop-auth-border: var(--pop-border, rgba(255, 255, 255, 0.1));\n --pop-auth-logo: rgba(255, 255, 255, 0.35);\n }\n }\n\n :host(.dark) {\n --pop-auth-border: var(--pop-border, rgba(255, 255, 255, 0.1));\n --pop-auth-logo: rgba(255, 255, 255, 0.35);\n }\n\n /* Deliberately no background here. .panel's own box grows to match\n whichever of panel__join/panel__card is taller for the duration of a\n transition (the exiting one stays display:block until it finishes\n sliding away), so an opaque .panel would cover the comment list behind\n it for that whole 833ms. Leaving it transparent lets join/card's own\n (opaque) boxes show through everywhere except where they themselves\n render, so the comment list stays visible around them mid-transition. */\n .panel {\n position: relative;\n }\n\n /* Positioned relative to panel__join-group (below), not .panel — .panel's\n own box grows to match whichever of join/card is taller mid-transition,\n so a fixed offset from *it* would float away from the join bar it's\n meant to sit above. Anchoring to the group instead means it's part of\n the same box that's actually animating, so it stays put above the join\n bar and fades/slides with it, in sync, the same as border-top below. */\n .watermark {\n position: absolute;\n top: -22px;\n left: 2px;\n padding: 2px 6px;\n }\n\n /* pop-auth-join (+ its watermark) and the card (email/code/no-code) are\n two independent, always-mounted elements stacked in the same grid cell\n so they can overlap mid-transition — one slides down off-screen while\n the other slides up into place, instead of one instantly replacing the\n other. */\n .panel__stack {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n }\n\n .panel__join-group,\n .panel__card {\n /* Grid items default to align-self: stretch — during the brief window\n where both are display:block at once (mid-transition), the row\n auto-sizes to the taller of the two and would stretch the shorter\n one's box to match, pinning its content at the top instead of the\n bottom until the row shrinks back down. Anchor both to the end\n (bottom) of the shared cell instead, matching .feed__footer's own\n grid-stack treatment in pop-feed.ts. */\n grid-area: 1 / 1;\n align-self: end;\n }\n\n .panel__card {\n position: relative;\n }\n\n /* The transform/opacity/display transition lives on this wrapper, not\n directly on <pop-auth-join>, so the watermark (absolutely positioned\n inside it) rides along as part of the same animating box instead of\n needing its own separate, easy-to-desync transition. */\n .panel__join-group {\n position: relative;\n transform: translateY(0);\n opacity: 1;\n transition:\n transform var(--pop-duration-quick) var(--pop-ease-quick),\n opacity var(--pop-duration-quick) var(--pop-ease-quick),\n display var(--pop-duration-quick) allow-discrete;\n\n @starting-style {\n transform: translateY(100%);\n opacity: 0;\n }\n }\n\n .panel--card .panel__join-group {\n display: none;\n transform: translateY(100%);\n opacity: 0;\n }\n\n /* border-top lives on the join bar's own box (not the outer .panel) so it\n enters/leaves in lockstep with the bar itself — it used to live on\n .panel, toggled instantly by the panel--card class while the actual\n slide took 833ms, so the border would snap on/off out of sync with\n the content still animating underneath it. */\n .panel__join {\n border-top: 1px solid var(--pop-auth-border);\n }\n\n /* Same reasoning as border-top above: the card's own background/radius\n live on its own box (not toggled via panel--card on the static outer\n .panel) so they're always in sync with its display/opacity/transform\n state instead of snapping the instant the view changes. */\n .panel__card {\n display: none;\n background: var(--pop-background);\n border-radius: var(--pop-radius-2xl) var(--pop-radius-2xl) 0 0;\n transform: translateY(100%);\n opacity: 0;\n transition:\n transform var(--pop-duration-quick) var(--pop-ease-quick),\n opacity var(--pop-duration-quick) var(--pop-ease-quick),\n height var(--pop-duration-quick) var(--pop-ease-quick),\n display var(--pop-duration-quick) allow-discrete;\n }\n\n /* --pop-ease-quick overshoots 1 (peaks ~1.1), so the card's translateY and\n height briefly travel past their resting values and lift its bottom edge\n off the feed's bottom, exposing the comment list underneath. This\n backing extends the card's background below its box to cover that gap;\n the feed host's overflow:hidden clips it once the card settles. A\n box-shadow rather than a pseudo-element on purpose: an absolutely\n positioned descendant below the card counts toward its scrollHeight,\n which swapCardContent measures to animate the card's height — a shadow\n doesn't. */\n .panel__card {\n box-shadow: 0 100px 0 0 var(--pop-background);\n }\n\n .panel--card .panel__card {\n display: block;\n transform: translateY(0);\n opacity: 1;\n\n @starting-style {\n transform: translateY(100%);\n opacity: 0;\n }\n }\n"), Dn = class extends Y {
|
|
@@ -1933,7 +1934,7 @@ var Tn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAWCAYAAAAIAZSVAAAA
|
|
|
1933
1934
|
`;
|
|
1934
1935
|
}
|
|
1935
1936
|
};
|
|
1936
|
-
Z([G
|
|
1937
|
+
Z([K(G)], Dn.prototype, "authStore", void 0), customElements.get("pop-auth-panel") || customElements.define("pop-auth-panel", Dn);
|
|
1937
1938
|
//#endregion
|
|
1938
1939
|
//#region src/components/pop-button-link.ts
|
|
1939
1940
|
var On = J("\n :host {\n display: inline-flex;\n max-width: 100%;\n }\n\n .btn-link {\n position: relative;\n align-items: center;\n background-color: transparent;\n border-style: solid;\n border-color: transparent;\n border-top-width: 1px;\n border-bottom-width: 1px;\n border-left-width: 4px;\n border-right-width: 4px;\n border-radius: var(--pop-radius-xs, 4px);\n cursor: pointer;\n display: inline-flex;\n flex-shrink: 0;\n font-weight: 500;\n gap: 6px;\n justify-content: center;\n max-width: 100%;\n outline: none;\n text-decoration: none;\n transform: translateY(-1px);\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n white-space: nowrap;\n }\n\n /* Sizes */\n .btn-link--size-sm,\n .btn-link--size-md {\n font-size: 14px;\n line-height: 20px;\n letter-spacing: 0;\n }\n\n .btn-link--size-lg {\n font-size: 16px;\n line-height: 24px;\n letter-spacing: 0;\n }\n\n /* Themes */\n .btn-link--theme-default {\n color: var(--pop-foreground);\n }\n\n .btn-link--theme-default.btn-link--primary {\n color: var(--pop-foreground);\n }\n\n .btn-link--theme-white {\n color: white;\n }\n\n .btn-link--theme-black {\n color: black;\n }\n\n /* Hover State */\n .btn-link--theme-default:hover,\n .btn-link--theme-black:hover {\n background-color: color-mix(in srgb, var(--pop-foreground) 10%, transparent);\n }\n\n .btn-link--theme-white:hover {\n background-color: color-mix(in srgb, white 16%, transparent);\n }\n\n /* Focus State */\n .btn-link:focus-visible {\n background-color: var(--pop-ring);\n color: white !important;\n }\n\n /* Disabled State */\n .btn-link:disabled,\n .btn-link.is-disabled {\n color: color-mix(in srgb, var(--pop-foreground) 35%, transparent) !important;\n background-color: transparent !important;\n border-color: transparent !important;\n cursor: not-allowed;\n pointer-events: none;\n }\n\n .btn-link__icon {\n align-items: center;\n display: inline-flex;\n flex-shrink: 0;\n justify-content: center;\n }\n\n .btn-link__icon ::slotted(*) {\n display: block;\n height: 18px;\n pointer-events: none;\n width: 18px;\n }\n\n :host([size=\"sm\"]) .btn-link__icon ::slotted(*) {\n height: 16px;\n width: 16px;\n }\n\n :host([size=\"lg\"]) .btn-link__icon ::slotted(*) {\n height: 20px;\n width: 20px;\n }\n\n .btn-link__label {\n min-width: 0;\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n"), kn = /* @__PURE__ */ new Set([
|
|
@@ -2142,31 +2143,36 @@ var In = J("\n :host {\n display: block;\n\n --comment-avatar-border-size
|
|
|
2142
2143
|
customElements.get("pop-comment-avatar") || customElements.define("pop-comment-avatar", Ln);
|
|
2143
2144
|
//#endregion
|
|
2144
2145
|
//#region src/store/grid-store.ts
|
|
2145
|
-
var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
2146
|
+
var Rn = 3e4, zn = 3, Bn = 1, Vn = (e) => {
|
|
2146
2147
|
let t = typeof e.createdAt == "number" ? e.createdAt : Date.parse(String(e.createdAt));
|
|
2147
2148
|
return Number.isFinite(t) ? t : 0;
|
|
2148
|
-
},
|
|
2149
|
+
}, Hn = (e, t) => {
|
|
2149
2150
|
let n = e?.previewCount ?? t;
|
|
2150
2151
|
return n > 0 ? n : zn;
|
|
2151
|
-
},
|
|
2152
|
+
}, Un = (e, t) => e && {
|
|
2152
2153
|
...e,
|
|
2153
2154
|
...t
|
|
2154
2155
|
}, $ = class {
|
|
2155
2156
|
constructor(e) {
|
|
2156
|
-
this.previewCount = zn, this._fetchedGrid =
|
|
2157
|
+
this.previewCount = zn, this._fetchedGrid = B(null), this._overrides = B({}), this.grid = H(() => Un(this._fetchedGrid.value, this._overrides.value)), this.comments = B([]), this.loading = B(!0), this.error = B(null), this.open = B(!1), this.replyingTo = B(null), this.editingCommentId = B(null), this.scrollingCommentId = B(null), this.socket = null, this.reconnectAttempt = 0, this.reconnectTimer = null, this.disposed = !1, this.topLevelComments = H(() => this.comments.value.filter((e) => e.parentCommentId === null).sort((e, t) => String(e.sortKey).localeCompare(String(t.sortKey)))), this.commentSize = H(() => this.grid.value?.layout === "lg" ? "lg" : "sm"), this.replyingToComment = H(() => {
|
|
2157
2158
|
let e = this.replyingTo.value;
|
|
2158
2159
|
return e ? this.comments.value.find((t) => t.id === e) ?? null : null;
|
|
2159
|
-
}), this.editingComment =
|
|
2160
|
+
}), this.editingComment = H(() => {
|
|
2160
2161
|
let e = this.editingCommentId.value;
|
|
2161
2162
|
return e ? this.comments.value.find((t) => t.id === e) ?? null : null;
|
|
2162
|
-
}), this.previewComments =
|
|
2163
|
-
let e =
|
|
2163
|
+
}), this.previewComments = H(() => this.topLevelComments.value.slice(0, Hn(this.grid.value, this.previewCount))), this.previewAvatars = H(() => {
|
|
2164
|
+
let e = Hn(this.grid.value, this.previewCount);
|
|
2165
|
+
if (e <= Bn) return [];
|
|
2166
|
+
let t = /* @__PURE__ */ new Set(), n = [], r = [...this.comments.value].sort((e, t) => Vn(t) - Vn(e));
|
|
2164
2167
|
for (let i of r) {
|
|
2165
2168
|
let r = i.author;
|
|
2166
2169
|
if (!(!r?.id || t.has(r.id)) && (t.add(r.id), n.push(r), n.length >= e)) break;
|
|
2167
2170
|
}
|
|
2168
2171
|
return n.reverse();
|
|
2169
|
-
}), this.apiUrl = e.apiUrl, this.publicKey = e.publicKey, this.pageUrl = e.pageUrl, this.externalId = e.externalId?.trim() || null, this.authStore = e.authStore;
|
|
2172
|
+
}), this.apiUrl = e.apiUrl, this.publicKey = e.publicKey, this.pageUrl = e.pageUrl, this.externalId = e.externalId?.trim() || null, this.demo = e.demo ?? !1, this.authStore = e.authStore;
|
|
2173
|
+
}
|
|
2174
|
+
showDemo({ grid: e, comments: t }) {
|
|
2175
|
+
this._fetchedGrid.value = e, this.comments.value = t, this.error.value = null, this.loading.value = !1;
|
|
2170
2176
|
}
|
|
2171
2177
|
setOverrides(e) {
|
|
2172
2178
|
this._overrides.value = e;
|
|
@@ -2252,7 +2258,7 @@ var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
|
2252
2258
|
}
|
|
2253
2259
|
scheduleReconnect() {
|
|
2254
2260
|
if (this.disposed || this.reconnectTimer) return;
|
|
2255
|
-
let e =
|
|
2261
|
+
let e = xt(this.reconnectAttempt, 1e3, Rn);
|
|
2256
2262
|
this.reconnectAttempt += 1, this.reconnectTimer = setTimeout(() => {
|
|
2257
2263
|
this.reconnectTimer = null, this.connectRealtime();
|
|
2258
2264
|
}, e);
|
|
@@ -2286,12 +2292,12 @@ var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
|
2286
2292
|
updateCommentInList(e) {
|
|
2287
2293
|
this.comments.value = this.comments.value.map((t) => t.id === e.id ? e : t);
|
|
2288
2294
|
}
|
|
2289
|
-
},
|
|
2295
|
+
}, Wn = J("\n :host {\n background: var(--pop-background);\n border-top: 1px solid var(--pop-bar-input-bg);\n display: block;\n padding: 6px;\n position: relative;\n\n --pop-bar-avatar-bg: #e5e7eb;\n --pop-bar-avatar-color: #374151;\n --pop-bar-avatar-border: #ffffff;\n --pop-bar-input-bg: rgba(0, 0, 32, 0.04);\n --pop-bar-send-hover: rgba(0, 0, 32, 0.06);\n --pop-bar-send-color: #000000;\n --pop-bar-watermark: rgba(0, 0, 32, 0.1);\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n --pop-bar-avatar-bg: #1f2937;\n --pop-bar-avatar-color: #d1d5db;\n --pop-bar-avatar-border: var(--pop-popover, #151d2a);\n --pop-bar-input-bg: rgba(255, 255, 255, 0.05);\n --pop-bar-send-hover: rgba(255, 255, 255, 0.08);\n --pop-bar-send-color: #ffffff;\n --pop-bar-watermark: rgba(255, 255, 255, 0.1);\n }\n }\n\n :host(.dark) {\n --pop-bar-avatar-bg: #1f2937;\n --pop-bar-avatar-color: #d1d5db;\n --pop-bar-avatar-border: var(--pop-popover, #151d2a);\n --pop-bar-input-bg: rgba(255, 255, 255, 0.05);\n --pop-bar-send-hover: rgba(255, 255, 255, 0.08);\n --pop-bar-send-color: #ffffff;\n --pop-bar-watermark: rgba(255, 255, 255, 0.1);\n }\n\n .bar {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .bar__user {\n display: flex;\n align-items: center;\n align-self: flex-start;\n flex-shrink: 0;\n padding-top: 2px;\n }\n\n .bar__avatar {\n flex-shrink: 0;\n --comment-avatar-border-size: 0px;\n }\n\n .bar__avatar--reply {\n margin-right: -4px;\n z-index: 1;\n }\n\n .bar__avatar--reply.hidden {\n display: none;\n }\n\n .bar__avatar--user {\n z-index: 2;\n }\n\n .bar__user.has-reply .bar__avatar--user {\n --comment-avatar-border-size: 2px;\n --comment-avatar-border-color: var(--pop-bar-avatar-border);\n }\n\n .bar__input-wrap {\n flex: 1;\n min-width: 0;\n background: var(--pop-bar-input-bg);\n border-radius: 18px;\n overflow: hidden;\n display: flex;\n align-items: flex-end;\n padding: 4px 8px 4px 12px;\n max-height: 280px;\n }\n\n .bar__send {\n align-items: center;\n align-self: flex-end;\n background: none;\n border: none;\n cursor: pointer;\n display: flex;\n justify-content: center;\n padding-bottom: 2px;\n }\n\n .logo-watermark {\n position: absolute;\n top: -16px;\n left: 8px;\n font-family: Inter, sans-serif;\n font-size: 8px;\n font-weight: 700;\n letter-spacing: 1px;\n color: var(--pop-bar-watermark);\n text-transform: uppercase;\n border-radius: 9999px;\n padding: 2px 6px;\n pointer-events: none;\n user-select: none;\n }\n"), Gn = "<svg width=\"64\" height=\"11\" viewBox=\"0 0 64 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M3.91111 0C0.892839 0 0 2.11357 0 4.77714C0 5.76321 0.0987654 6.73357 0.213333 7.70786C0.25679 8.08893 0.240988 8.50929 0.312099 8.89036C0.497778 9.89214 1.44593 10.3557 2.36642 10.3557C3.62667 10.3557 4.4642 9.56607 4.4642 8.30107C4.4642 7.57036 4.22321 7.09107 3.5279 6.80821C3.48444 6.7925 3.44099 6.78071 3.44099 6.72179C3.44099 6.62357 3.59901 6.55286 3.69778 6.55286C4.03753 6.55286 4.57481 6.89071 5.04494 6.89071C6.88593 6.89071 7.90519 5.13071 7.90519 3.48071C7.90519 1.08429 6.13136 0 3.91111 0ZM3.89531 5.18179C3.78074 5.18179 3.68198 5.08357 3.68198 4.96964C3.68198 4.81643 3.89531 4.7025 3.96642 4.57679C4.12049 4.29393 4.16395 3.81464 4.16395 3.4925C4.16395 3.11143 4.06519 2.40821 3.8242 2.12536C3.75309 2.04286 3.65432 1.99964 3.65432 1.88571C3.65432 1.77179 3.76889 1.67357 3.87951 1.67357C4.36148 1.67357 4.60247 3.08393 4.60247 3.44929C4.60247 3.84214 4.47605 5.18179 3.89531 5.18179Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M12.7368 0.239637C9.73433 0.239637 7.93285 2.35321 7.93285 5.25249C7.93285 8.15178 9.73038 10.2654 12.7368 10.2654C15.7432 10.2654 17.5249 8.12428 17.5249 5.25249C17.5249 2.38071 15.7116 0.239637 12.7368 0.239637ZM12.8672 8.83142C12.8198 8.89035 12.7249 9.00035 12.6104 9.00035C12.4958 9.00035 12.3852 8.90214 12.3852 8.78821C12.3852 8.74499 12.7526 8.19499 12.8119 8.02607C13.037 7.36214 13.0805 6.64321 13.0805 5.93999C13.0805 4.99714 12.9106 3.78321 12.3299 3.00928C12.2153 2.86785 11.8637 2.60071 11.8637 2.44749C11.8637 2.33357 11.9625 2.23535 12.077 2.23535C12.1758 2.23535 12.2746 2.32178 12.3457 2.37678C13.2504 3.12321 13.523 4.82821 13.523 5.93999C13.523 6.81214 13.4874 8.08499 12.8711 8.82749L12.8672 8.83142Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M21.6533 0C18.6351 0 17.7422 2.11357 17.7422 4.77714C17.7422 5.76321 17.841 6.73357 17.9555 7.70786C17.999 8.08893 17.9832 8.50929 18.0543 8.89036C18.24 9.89214 19.1881 10.3557 20.1086 10.3557C21.3689 10.3557 22.2064 9.56607 22.2064 8.30107C22.2064 7.57036 21.9654 7.09107 21.2701 6.80821C21.2267 6.7925 21.1832 6.78071 21.1832 6.72179C21.1832 6.62357 21.3412 6.55286 21.44 6.55286C21.7797 6.55286 22.317 6.89071 22.7871 6.89071C24.6281 6.89071 25.6474 5.13071 25.6474 3.48071C25.6474 1.08429 23.8775 0 21.6533 0ZM21.6415 5.18179C21.5269 5.18179 21.4281 5.08357 21.4281 4.96964C21.4281 4.81643 21.6415 4.7025 21.7126 4.57679C21.8667 4.29393 21.9101 3.81464 21.9101 3.4925C21.9101 3.11143 21.8113 2.40821 21.5704 2.12536C21.4992 2.04286 21.4005 1.99964 21.4005 1.88571C21.4005 1.77179 21.5151 1.67357 21.6257 1.67357C22.1076 1.67357 22.3486 3.08393 22.3486 3.44929C22.3486 3.84214 22.2222 5.18179 21.6415 5.18179Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M31.9012 4.16822C30.882 4.16822 29.4637 4.6318 29.4637 5.84572C29.4637 6.53715 29.9733 7.56251 30.7832 7.56251C31.2929 7.56251 31.6208 7.16965 31.7906 7.16965C31.8341 7.16965 31.8736 7.19715 31.8736 7.24037C31.8736 7.64894 31.0795 7.83358 30.7674 7.83358C29.677 7.83358 29.0963 6.90251 29.0963 5.91644C29.0963 4.70644 30.242 3.77537 31.4035 3.77537C31.7432 3.77537 32.0988 3.87358 32.4385 3.87358C33.4459 3.87358 34.165 2.97394 34.165 2.01537C34.165 0.424295 32.2687 0.0589382 31.0045 0.0589382C27.6464 0.0589382 25.6909 2.22751 25.6909 5.52358C25.6909 8.56822 27.279 10.5089 30.4237 10.5089C32.4622 10.5089 34.6864 9.6368 34.6864 7.26787C34.6864 5.6493 33.6237 4.16822 31.8973 4.16822H31.9012Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M41.2681 6.56464C41.0113 6.56464 40.802 6.66286 40.5886 6.66286C40.5452 6.66286 40.5333 6.61964 40.5333 6.59214C40.5333 6.49393 40.5768 6.45071 40.6479 6.42321C40.8889 6.34071 41.1457 6.28179 41.3827 6.16786C42.4612 5.66107 43.0973 4.7575 43.0973 3.56321C43.0973 1.40643 41.2405 0.0982143 39.202 0.0982143C38.4632 0.0982143 37.7442 0.310357 37.12 0.648214C35.4212 1.56357 35.0933 2.87571 34.9946 4.66321C34.9511 5.36643 34.9511 6.07357 34.9511 6.77679V8.48179C34.9511 9.55036 35.6583 10.4107 36.7763 10.4107C37.5822 10.4107 38.3052 9.83321 38.4909 9.07107C38.5896 8.61929 38.5343 8.085 38.5343 7.64893C38.5343 7.60571 38.5501 7.59393 38.5896 7.59393C38.6291 7.59393 38.6765 7.62143 38.7042 7.63714C39.202 8.83536 39.8815 10.3557 41.4222 10.3557C42.4849 10.3557 43.362 9.60929 43.362 8.525C43.362 7.44071 42.3427 6.56857 41.2642 6.56857L41.2681 6.56464ZM38.961 5.18179C38.8464 5.18179 38.7476 5.08357 38.7476 4.96964C38.7476 4.81643 38.961 4.7025 39.0321 4.57679C39.1862 4.29393 39.2296 3.81464 39.2296 3.4925C39.2296 3.11143 39.1309 2.40821 38.8899 2.12536C38.8188 2.04286 38.7358 1.99964 38.7358 1.88571C38.7358 1.77179 38.8346 1.67357 38.9491 1.67357C39.4311 1.67357 39.6721 3.08393 39.6721 3.44929C39.6721 3.84214 39.5575 5.18179 38.9649 5.18179H38.961Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M46.7674 0.549991C46.4277 0.326063 45.9457 0.212134 45.5348 0.212134C44.642 0.212134 43.8756 0.915349 43.7768 1.79142C43.7491 2.04678 43.761 2.28642 43.761 2.55356V4.94606L43.7175 7.46821V8.72142C43.7175 9.70749 44.5669 10.4814 45.5467 10.4814C46.2696 10.4814 47.0637 10.0296 47.3324 9.35392C47.4864 8.97285 47.5022 8.43856 47.5022 8.02999V6.92999L47.518 4.73392V2.53785C47.518 1.72071 47.5022 1.07249 46.7674 0.549991Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M50.2993 0.125713C48.8533 0.125713 48.1304 0.801428 48.1304 2.25107V2.82857L48.1462 3.96786V4.54536C48.1462 4.98143 48.1462 5.39 48.1304 5.82607C48.1027 6.34857 48.0316 6.86714 48.0316 7.40536C48.0316 9.3775 49.0509 10.3361 51.0222 10.3361C54.0523 10.3361 56.1067 9.03964 56.1067 5.81429C56.1067 1.925 54.2222 0.121785 50.2993 0.121785V0.125713ZM51.6583 7.91607C51.5437 7.91607 51.4449 7.81786 51.4449 7.70393C51.4449 7.66071 51.4608 7.83352 51.4884 7.59C51.8558 6.985 51.9546 6.14036 51.9546 5.44893C51.9546 4.80071 51.8835 3.84214 51.4726 3.33536C51.4015 3.22143 51.2593 3.13893 51.2593 2.9975C51.2593 2.88357 51.358 2.78536 51.4726 2.78536C51.6859 2.78536 51.9822 3.31964 52.0691 3.50428C52.3378 4.125 52.3812 4.80071 52.3812 5.46071C52.3812 5.86928 52.1679 7.91214 51.6583 7.91214V7.91607Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n<path d=\"M62.7239 5.1268C61.9022 5.05608 60.7249 4.77322 60.0889 4.23894C60.0059 4.16822 59.8637 4.07001 59.8637 3.9443C59.8637 3.90108 59.8795 3.83037 59.9348 3.83037C60.0889 3.83037 61.0805 4.62001 61.9338 4.62001C63.0123 4.62001 64 3.78715 64 2.69108C64 0.887867 61.5941 0.157152 60.1324 0.157152C57.9635 0.157152 56.3516 1.5518 56.3516 3.76358C56.3516 4.24287 56.4227 4.90287 56.7783 5.27215C56.9482 5.4568 57.2326 5.4568 57.4578 5.4568C58.3072 5.4568 59.3857 5.72394 59.836 6.49787C59.8795 6.56858 59.919 6.68251 59.919 6.76501C59.919 6.79251 59.919 6.83572 59.8914 6.82001C59.8084 6.79251 59.7373 6.7218 59.678 6.6668C59.1802 6.18751 58.5007 5.70822 57.7817 5.70822C56.7032 5.70822 56.324 6.73751 56.324 7.63715C56.324 9.45215 57.9674 10.4539 59.6385 10.4539C61.6217 10.4539 64 9.15751 64 6.94572C64 6.12858 63.6444 5.21322 62.7239 5.13072V5.1268Z\" fill=\"#000020\" fill-opacity=\"0.1\"/>\n</svg>", Kn = class extends Y {
|
|
2290
2296
|
constructor(...e) {
|
|
2291
2297
|
super(...e), this.events = { click: "onClick" };
|
|
2292
2298
|
}
|
|
2293
2299
|
get styleSheets() {
|
|
2294
|
-
return [
|
|
2300
|
+
return [Wn];
|
|
2295
2301
|
}
|
|
2296
2302
|
onClick(e) {
|
|
2297
2303
|
e.target.closest(X("send")) && this.handleSend();
|
|
@@ -2321,7 +2327,7 @@ var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
|
2321
2327
|
let n = this.gridStore.editingComment.value ? null : this.gridStore.replyingToComment.value?.author;
|
|
2322
2328
|
if (e.classList.toggle("has-reply", !!n), t.classList.toggle("hidden", !n), n) {
|
|
2323
2329
|
let e = n.id ?? n.name ?? "";
|
|
2324
|
-
t.setAttribute("data-color-key", e), t.innerHTML = n.image ? `<img src="${n.image}" alt="${n.name ?? "User"}'s avatar">` :
|
|
2330
|
+
t.setAttribute("data-color-key", e), t.innerHTML = n.image ? `<img src="${n.image}" alt="${n.name ?? "User"}'s avatar">` : rt(n.name);
|
|
2325
2331
|
}
|
|
2326
2332
|
});
|
|
2327
2333
|
}
|
|
@@ -2340,7 +2346,7 @@ var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
|
2340
2346
|
}
|
|
2341
2347
|
getTemplate() {
|
|
2342
2348
|
return `
|
|
2343
|
-
<div class="logo-watermark">${
|
|
2349
|
+
<div class="logo-watermark">${Gn}</div>
|
|
2344
2350
|
<div class="bar">
|
|
2345
2351
|
<div class="bar__user" data-ref="user">
|
|
2346
2352
|
<pop-comment-avatar
|
|
@@ -2364,15 +2370,15 @@ var Rn = 3e4, zn = 3, Bn = (e) => {
|
|
|
2364
2370
|
`;
|
|
2365
2371
|
}
|
|
2366
2372
|
};
|
|
2367
|
-
Z([
|
|
2373
|
+
Z([K($)], Kn.prototype, "gridStore", void 0), Z([K(G)], Kn.prototype, "authStore", void 0), customElements.get("pop-comment-bar") || customElements.define("pop-comment-bar", Kn);
|
|
2368
2374
|
//#endregion
|
|
2369
2375
|
//#region src/components/pop-comment-icon.ts
|
|
2370
|
-
var Kn = J("\n :host {\n /* Mode-level theme colors (defaults for light mode) */\n --pop-comment-color-black: #000000;\n --pop-comment-color-white: #ffffff;\n --pop-comment-color-default: #000000;\n --pop-comment-color-reversed: #ffffff;\n --pop-comment-bg-singular-resting: #121926;\n --pop-comment-bg-singular-hover: rgba(0, 0, 32, 0.08);\n --pop-comment-bg-reversed: #121926;\n --pop-comment-bg-blank-resting: #ffffff;\n\n display: flex;\n\n --pop-comment-icon-scale: 1;\n --pop-comment-icon-scale-hover: 1.1875;\n --pop-comment-icon-scale-active: 0.9375;\n --pop-comment-icon-size: 32px;\n --pop-comment-icon-color: var(--pop-foreground, #000000);\n --pop-comment-icon-color-hover: var(--pop-foreground, #000000);\n --pop-comment-icon-color-active: var(--pop-foreground, #000000);\n --pop-comment-icon-color-focused: var(--pop-foreground, #000000);\n --pop-comment-icon-background: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-hover: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-active: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-focused: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n /* Overrides for dark mode */\n --pop-comment-color-black: #ffffff;\n --pop-comment-color-white: #000000;\n --pop-comment-color-default: #ffffff;\n --pop-comment-color-reversed: #000000;\n --pop-comment-bg-singular-resting: #ffffff;\n --pop-comment-bg-singular-hover: rgba(255, 255, 255, 0.15);\n --pop-comment-bg-reversed: #ffffff;\n --pop-comment-bg-blank-resting: #121926;\n }\n }\n\n :host(.dark) {\n /* Overrides for dark mode (.dark class on host) */\n --pop-comment-color-black: #ffffff;\n --pop-comment-color-white: #000000;\n --pop-comment-color-default: #ffffff;\n --pop-comment-color-reversed: #000000;\n --pop-comment-bg-singular-resting: #ffffff;\n --pop-comment-bg-singular-hover: rgba(255, 255, 255, 0.15);\n --pop-comment-bg-reversed: #ffffff;\n --pop-comment-bg-blank-resting: #121926;\n }\n\n .comment-icon {\n align-items: center;\n background: transparent;\n border: none;\n display: inline-flex;\n height: var(--pop-comment-icon-size);\n justify-content: center;\n padding: 0;\n position: relative;\n transform-origin: center;\n width: var(--pop-comment-icon-size);\n }\n\n .comment-icon--size-sm {\n --pop-comment-icon-size: 24px;\n }\n\n .comment-icon:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .comment-icon__focus-indicator {\n background-color: var(--pop-ring);\n display: none;\n position: absolute;\n inset: -3px;\n pointer-events: none;\n transform-origin: center;\n transform: scale(var(--pop-comment-icon-scale));\n transition: all 200ms ease-out;\n width: calc(100% + 6px);\n }\n\n .comment-icon:focus-visible .comment-icon__focus-indicator {\n display: flex;\n }\n\n .comment-icon:focus-visible {\n outline: none;\n }\n\n .comment-icon__inner {\n align-items: center;\n background: var(--pop-comment-icon-background);\n color: var(--pop-comment-icon-color);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n height: var(--pop-comment-icon-size);\n justify-content: center;\n position: absolute;\n transform-origin: center;\n transition: all 200ms ease-out;\n transform: scale(var(--pop-comment-icon-scale));\n width: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon-container {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n transition: transform ease-out 150ms;\n width: 100%;\n }\n\n .comment-icon__icon-container svg {\n width: calc(var(--pop-comment-icon-size) * 0.6875);\n height: calc(var(--pop-comment-icon-size) * 0.6875);\n }\n\n .comment-icon--variant-close.comment-icon--theme-neutral .comment-icon__icon-container svg {\n width: var(--pop-comment-icon-size);\n height: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon-image {\n display: flex;\n width: var(--pop-comment-icon-size);\n height: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon {\n display: flex;\n }\n\n .comment-icon__icon-image + .comment-icon__icon {\n display: none;\n }\n\n .comment-icon .comment-icon__inner {\n transition: transform var(--pop-ease-pop-hover) var(--pop-duration-pop-hover);\n }\n\n @media (hover: hover) and (pointer: fine) {\n .comment-icon:hover .comment-icon__inner {\n background: var(--pop-comment-icon-background-hover);\n color: var(--pop-comment-icon-color-hover);\n transform: scale(var(--pop-comment-icon-scale-hover));\n }\n\n .comment-icon:hover .comment-icon__icon-image {\n display: none;\n }\n\n .comment-icon:hover .comment-icon__icon-image + .comment-icon__icon {\n display: flex;\n }\n }\n\n .comment-icon:active .comment-icon__inner {\n background: var(--pop-comment-icon-background-active);\n color: var(--pop-comment-icon-color-active);\n transform: scale(var(--pop-comment-icon-scale-active));\n transition-duration: 200ms;\n }\n\n .comment-icon:is(:focus-visible) .comment-icon__inner {\n background: var(--pop-comment-icon-background-focused);\n color: var(--pop-comment-icon-color-focused);\n }\n\n /* Brand / Add */\n .comment-icon--theme-brand.comment-icon--variant-add {\n --pop-comment-icon-color: var(--pop-comment-color-black);\n --pop-comment-icon-color-hover: var(--pop-comment-color-black);\n --pop-comment-icon-color-active: var(--pop-comment-color-black);\n --pop-comment-icon-color-focused: var(--pop-comment-color-black);\n --pop-comment-icon-background: transparent;\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-hover);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-hover);\n --pop-comment-icon-background-focused: transparent;\n }\n\n /* Brand / Close */\n .comment-icon--theme-brand.comment-icon--variant-close {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Add */\n .comment-icon--theme-neutral.comment-icon--variant-add {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Close */\n .comment-icon--theme-neutral.comment-icon--variant-close {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Send */\n .comment-icon--theme-neutral.comment-icon--variant-send {\n --pop-comment-icon-color: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-hover: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-active: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-focused: var(--pop-comment-color-reversed);\n --pop-comment-icon-background: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-active: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-reversed);\n }\n\n /* Neutral / More */\n .comment-icon--theme-neutral.comment-icon--variant-more {\n --pop-comment-icon-color: var(--pop-comment-color-default);\n --pop-comment-icon-color-hover: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-active: var(--pop-comment-color-default);\n --pop-comment-icon-color-focused: var(--pop-comment-color-default);\n --pop-comment-icon-background: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-active: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-blank-resting);\n }\n\n /* Neutral / Cancel */\n .comment-icon--theme-neutral.comment-icon--variant-cancel {\n --pop-comment-icon-color: var(--pop-comment-color-default);\n --pop-comment-icon-color-hover: var(--pop-comment-color-default);\n --pop-comment-icon-color-active: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-focused: var(--pop-comment-color-default);\n --pop-comment-icon-background: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-blank-resting);\n }\n"), qn = class extends Y {
|
|
2376
|
+
var qn = J("\n :host {\n /* Mode-level theme colors (defaults for light mode) */\n --pop-comment-color-black: #000000;\n --pop-comment-color-white: #ffffff;\n --pop-comment-color-default: #000000;\n --pop-comment-color-reversed: #ffffff;\n --pop-comment-bg-singular-resting: #121926;\n --pop-comment-bg-singular-hover: rgba(0, 0, 32, 0.08);\n --pop-comment-bg-reversed: #121926;\n --pop-comment-bg-blank-resting: #ffffff;\n\n display: flex;\n\n --pop-comment-icon-scale: 1;\n --pop-comment-icon-scale-hover: 1.1875;\n --pop-comment-icon-scale-active: 0.9375;\n --pop-comment-icon-size: 32px;\n --pop-comment-icon-color: var(--pop-foreground, #000000);\n --pop-comment-icon-color-hover: var(--pop-foreground, #000000);\n --pop-comment-icon-color-active: var(--pop-foreground, #000000);\n --pop-comment-icon-color-focused: var(--pop-foreground, #000000);\n --pop-comment-icon-background: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-hover: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-active: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n --pop-comment-icon-background-focused: var(\n --color-surface-buttons-singular-bg-launch-icon-hover,\n rgba(0, 0, 32, 0.08)\n );\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n /* Overrides for dark mode */\n --pop-comment-color-black: #ffffff;\n --pop-comment-color-white: #000000;\n --pop-comment-color-default: #ffffff;\n --pop-comment-color-reversed: #000000;\n --pop-comment-bg-singular-resting: #ffffff;\n --pop-comment-bg-singular-hover: rgba(255, 255, 255, 0.15);\n --pop-comment-bg-reversed: #ffffff;\n --pop-comment-bg-blank-resting: #121926;\n }\n }\n\n :host(.dark) {\n /* Overrides for dark mode (.dark class on host) */\n --pop-comment-color-black: #ffffff;\n --pop-comment-color-white: #000000;\n --pop-comment-color-default: #ffffff;\n --pop-comment-color-reversed: #000000;\n --pop-comment-bg-singular-resting: #ffffff;\n --pop-comment-bg-singular-hover: rgba(255, 255, 255, 0.15);\n --pop-comment-bg-reversed: #ffffff;\n --pop-comment-bg-blank-resting: #121926;\n }\n\n .comment-icon {\n align-items: center;\n background: transparent;\n border: none;\n display: inline-flex;\n height: var(--pop-comment-icon-size);\n justify-content: center;\n padding: 0;\n position: relative;\n transform-origin: center;\n width: var(--pop-comment-icon-size);\n }\n\n .comment-icon--size-sm {\n --pop-comment-icon-size: 24px;\n }\n\n .comment-icon:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .comment-icon__focus-indicator {\n background-color: var(--pop-ring);\n display: none;\n position: absolute;\n inset: -3px;\n pointer-events: none;\n transform-origin: center;\n transform: scale(var(--pop-comment-icon-scale));\n transition: all 200ms ease-out;\n width: calc(100% + 6px);\n }\n\n .comment-icon:focus-visible .comment-icon__focus-indicator {\n display: flex;\n }\n\n .comment-icon:focus-visible {\n outline: none;\n }\n\n .comment-icon__inner {\n align-items: center;\n background: var(--pop-comment-icon-background);\n color: var(--pop-comment-icon-color);\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n height: var(--pop-comment-icon-size);\n justify-content: center;\n position: absolute;\n transform-origin: center;\n transition: all 200ms ease-out;\n transform: scale(var(--pop-comment-icon-scale));\n width: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon-container {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n transition: transform ease-out 150ms;\n width: 100%;\n }\n\n .comment-icon__icon-container svg {\n width: calc(var(--pop-comment-icon-size) * 0.6875);\n height: calc(var(--pop-comment-icon-size) * 0.6875);\n }\n\n .comment-icon--variant-close.comment-icon--theme-neutral .comment-icon__icon-container svg {\n width: var(--pop-comment-icon-size);\n height: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon-image {\n display: flex;\n width: var(--pop-comment-icon-size);\n height: var(--pop-comment-icon-size);\n }\n\n .comment-icon__icon {\n display: flex;\n }\n\n .comment-icon__icon-image + .comment-icon__icon {\n display: none;\n }\n\n .comment-icon .comment-icon__inner {\n transition: transform var(--pop-ease-pop-hover) var(--pop-duration-pop-hover);\n }\n\n @media (hover: hover) and (pointer: fine) {\n .comment-icon:hover .comment-icon__inner {\n background: var(--pop-comment-icon-background-hover);\n color: var(--pop-comment-icon-color-hover);\n transform: scale(var(--pop-comment-icon-scale-hover));\n }\n\n .comment-icon:hover .comment-icon__icon-image {\n display: none;\n }\n\n .comment-icon:hover .comment-icon__icon-image + .comment-icon__icon {\n display: flex;\n }\n }\n\n .comment-icon:active .comment-icon__inner {\n background: var(--pop-comment-icon-background-active);\n color: var(--pop-comment-icon-color-active);\n transform: scale(var(--pop-comment-icon-scale-active));\n transition-duration: 200ms;\n }\n\n .comment-icon:is(:focus-visible) .comment-icon__inner {\n background: var(--pop-comment-icon-background-focused);\n color: var(--pop-comment-icon-color-focused);\n }\n\n /* Brand / Add */\n .comment-icon--theme-brand.comment-icon--variant-add {\n --pop-comment-icon-color: var(--pop-comment-color-black);\n --pop-comment-icon-color-hover: var(--pop-comment-color-black);\n --pop-comment-icon-color-active: var(--pop-comment-color-black);\n --pop-comment-icon-color-focused: var(--pop-comment-color-black);\n --pop-comment-icon-background: transparent;\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-hover);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-hover);\n --pop-comment-icon-background-focused: transparent;\n }\n\n /* Brand / Close */\n .comment-icon--theme-brand.comment-icon--variant-close {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Add */\n .comment-icon--theme-neutral.comment-icon--variant-add {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Close */\n .comment-icon--theme-neutral.comment-icon--variant-close {\n --pop-comment-icon-color: var(--pop-comment-color-white);\n --pop-comment-icon-color-hover: var(--pop-comment-color-white);\n --pop-comment-icon-color-active: var(--pop-comment-color-white);\n --pop-comment-icon-color-focused: var(--pop-comment-color-white);\n --pop-comment-icon-background: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-singular-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-singular-resting);\n }\n\n /* Neutral / Send */\n .comment-icon--theme-neutral.comment-icon--variant-send {\n --pop-comment-icon-color: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-hover: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-active: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-focused: var(--pop-comment-color-reversed);\n --pop-comment-icon-background: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-active: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-reversed);\n }\n\n /* Neutral / More */\n .comment-icon--theme-neutral.comment-icon--variant-more {\n --pop-comment-icon-color: var(--pop-comment-color-default);\n --pop-comment-icon-color-hover: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-active: var(--pop-comment-color-default);\n --pop-comment-icon-color-focused: var(--pop-comment-color-default);\n --pop-comment-icon-background: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-active: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-blank-resting);\n }\n\n /* Neutral / Cancel */\n .comment-icon--theme-neutral.comment-icon--variant-cancel {\n --pop-comment-icon-color: var(--pop-comment-color-default);\n --pop-comment-icon-color-hover: var(--pop-comment-color-default);\n --pop-comment-icon-color-active: var(--pop-comment-color-reversed);\n --pop-comment-icon-color-focused: var(--pop-comment-color-default);\n --pop-comment-icon-background: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-hover: var(--pop-comment-bg-blank-resting);\n --pop-comment-icon-background-active: var(--pop-comment-bg-reversed);\n --pop-comment-icon-background-focused: var(--pop-comment-bg-blank-resting);\n }\n"), Jn = class extends Y {
|
|
2371
2377
|
constructor(...e) {
|
|
2372
2378
|
super(...e), this.events = { click: "onClick" };
|
|
2373
2379
|
}
|
|
2374
2380
|
get styleSheets() {
|
|
2375
|
-
return [
|
|
2381
|
+
return [qn];
|
|
2376
2382
|
}
|
|
2377
2383
|
static get observedAttributes() {
|
|
2378
2384
|
return [
|
|
@@ -2495,10 +2501,10 @@ var Kn = J("\n :host {\n /* Mode-level theme colors (defaults for light mode
|
|
|
2495
2501
|
`;
|
|
2496
2502
|
}
|
|
2497
2503
|
};
|
|
2498
|
-
customElements.get("pop-comment-icon") || customElements.define("pop-comment-icon",
|
|
2504
|
+
customElements.get("pop-comment-icon") || customElements.define("pop-comment-icon", Jn);
|
|
2499
2505
|
//#endregion
|
|
2500
2506
|
//#region src/components/pop-comment-input.ts
|
|
2501
|
-
var
|
|
2507
|
+
var Yn = J("\n :host {\n display: flex;\n flex: 1;\n min-width: 0;\n align-items: flex-end;\n }\n\n textarea {\n flex: 1;\n min-width: 0;\n background: none;\n border: none;\n outline: none;\n resize: none;\n font-family: Inter, sans-serif;\n font-size: 13px;\n color: black;\n line-height: 18px;\n padding: 5px 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n letter-spacing: -0.08px;\n }\n\n textarea::placeholder {\n color: #697586;\n }\n"), Xn = class extends Y {
|
|
2502
2508
|
constructor(...e) {
|
|
2503
2509
|
super(...e), this.events = {
|
|
2504
2510
|
input: "onInput",
|
|
@@ -2506,7 +2512,7 @@ var Jn = J("\n :host {\n display: flex;\n flex: 1;\n min-width: 0;\n
|
|
|
2506
2512
|
};
|
|
2507
2513
|
}
|
|
2508
2514
|
get styleSheets() {
|
|
2509
|
-
return [
|
|
2515
|
+
return [Yn];
|
|
2510
2516
|
}
|
|
2511
2517
|
onInput(e) {
|
|
2512
2518
|
let t = e.target;
|
|
@@ -2539,21 +2545,23 @@ var Jn = J("\n :host {\n display: flex;\n flex: 1;\n min-width: 0;\n
|
|
|
2539
2545
|
return "\n <textarea rows=\"1\" placeholder=\"Comment\"></textarea>\n ";
|
|
2540
2546
|
}
|
|
2541
2547
|
};
|
|
2542
|
-
Z([
|
|
2548
|
+
Z([K($)], Xn.prototype, "gridStore", void 0), customElements.get("pop-comment-input") || customElements.define("pop-comment-input", Xn);
|
|
2543
2549
|
//#endregion
|
|
2544
2550
|
//#region src/components/pop-comment-thread.ts
|
|
2545
|
-
var
|
|
2551
|
+
var Zn = J("\n :host {\n display: block;\n /* Width of a comment's avatar column: pop-comment's avatar plus its gap. */\n --pop-thread-avatar-column: 40px;\n\n --pop-thread-link: rgba(0, 0, 32, 0.5);\n --pop-thread-link-hover: rgba(0, 0, 32, 0.8);\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n --pop-thread-link: rgba(255, 255, 255, 0.5);\n --pop-thread-link-hover: rgba(255, 255, 255, 0.8);\n }\n }\n\n :host(.dark) {\n --pop-thread-link: rgba(255, 255, 255, 0.5);\n --pop-thread-link-hover: rgba(255, 255, 255, 0.8);\n }\n\n .thread {\n align-items: stretch;\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n\n .thread__replies {\n align-items: center;\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding-left: 24px;\n }\n\n .thread__more {\n display: flex;\n align-items: center;\n font-size: 13px;\n gap: 6px;\n /* Starts the count's text where the replies' text starts: the 4px dot and 6px gap sit in the avatar column. */\n padding-left: calc(var(--pop-thread-avatar-column) - 10px);\n transition: opacity 0.15s ease;\n width: 100%;\n }\n\n :host([data-size=\"lg\"]) {\n --pop-thread-avatar-column: 68px;\n }\n\n .thread__more:hover {\n opacity: 1;\n }\n\n .thread__more-dot {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: var(--pop-muted-foreground);\n flex-shrink: 0;\n opacity: 0.1;\n }\n"), Qn = 2, $n = class extends Y {
|
|
2546
2552
|
constructor(...e) {
|
|
2547
2553
|
super(...e), this._showAll = !1, this.events = { click: "onClick" };
|
|
2548
2554
|
}
|
|
2549
2555
|
get styleSheets() {
|
|
2550
|
-
return [
|
|
2556
|
+
return [Zn];
|
|
2551
2557
|
}
|
|
2552
2558
|
onClick(e) {
|
|
2553
2559
|
e.target.closest(X("more")) && (this._showAll = !0, this.render());
|
|
2554
2560
|
}
|
|
2555
2561
|
setupEffects() {
|
|
2556
2562
|
this.addEffect(() => {
|
|
2563
|
+
this.setAttribute("data-size", this.gridStore.commentSize.value);
|
|
2564
|
+
}), this.addEffect(() => {
|
|
2557
2565
|
let e = this.getAttribute("comment-id"), t = this.gridStore.scrollingCommentId.value;
|
|
2558
2566
|
e && t && this.gridStore.repliesFor(e).some((e) => e.id === t) && (this._showAll = !0), this.gridStore.comments.value, this.render();
|
|
2559
2567
|
});
|
|
@@ -2561,7 +2569,7 @@ var Xn = J("\n :host {\n display: block;\n\n --pop-thread-link: rgba(0, 0
|
|
|
2561
2569
|
getTemplate() {
|
|
2562
2570
|
let e = this.getAttribute("comment-id");
|
|
2563
2571
|
if (!e) return "";
|
|
2564
|
-
let t = this.gridStore.repliesFor(e), n = this._showAll || t.length <=
|
|
2572
|
+
let t = this.gridStore.repliesFor(e), n = this._showAll || t.length <= Qn ? t : t.slice(0, Qn), r = t.length - n.length, i = r > 0 ? `<div class="thread__more">
|
|
2565
2573
|
<div class="thread__more-dot"></div>
|
|
2566
2574
|
<pop-button-link data-ref="more" size="sm" theme="default">
|
|
2567
2575
|
Show ${r} more ${r === 1 ? "reply" : "replies"}
|
|
@@ -2578,16 +2586,16 @@ var Xn = J("\n :host {\n display: block;\n\n --pop-thread-link: rgba(0, 0
|
|
|
2578
2586
|
`;
|
|
2579
2587
|
}
|
|
2580
2588
|
};
|
|
2581
|
-
Z([
|
|
2589
|
+
Z([K($)], $n.prototype, "gridStore", void 0), customElements.get("pop-comment-thread") || customElements.define("pop-comment-thread", $n);
|
|
2582
2590
|
//#endregion
|
|
2583
2591
|
//#region src/helpers/time.ts
|
|
2584
|
-
function
|
|
2592
|
+
function er(e) {
|
|
2585
2593
|
let t = e instanceof Date ? e : new Date(e), n = (Date.now() - t.getTime()) / 1e3;
|
|
2586
2594
|
return n < 1 ? "now" : n < 60 ? `${Math.floor(n)}s` : n < 3600 ? `${Math.floor(n / 60)}m` : n < 86400 ? `${Math.floor(n / 3600)}h` : n < 604800 ? `${Math.floor(n / 86400)}d` : `${Math.floor(n / 604800)}w`;
|
|
2587
2595
|
}
|
|
2588
2596
|
//#endregion
|
|
2589
2597
|
//#region src/components/pop-comment.ts
|
|
2590
|
-
var
|
|
2598
|
+
var tr = J("\n :host {\n display: block;\n width: 100%;\n --pop-comment-hover: rgba(0, 0, 32, 0.04);\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n --pop-comment-hover: rgba(255, 255, 255, 0.04);\n }\n }\n\n .comment {\n display: flex;\n width: 100%;\n gap: 8px;\n align-items: center;\n background-color: transparent;\n border: none;\n padding: 0;\n border-radius: var(--pop-radius-md);\n outline: 6px solid transparent;\n text-align: left;\n transition:\n background-color 150ms ease,\n outline-color 150ms ease;\n }\n\n :host([data-size=\"sm\"]) .comment,\n :host:not([data-size]) .comment {\n --avatar-size: 32px;\n --width: 32px;\n gap: 8px;\n }\n\n :host([data-size=\"lg\"]) .comment {\n --avatar-size: 56px;\n --width: 56px;\n gap: 12px;\n }\n\n .comment--is-selected {\n background-color: var(--pop-muted);\n outline-color: var(--pop-muted);\n }\n\n :host(.is-signed-in) .comment {\n cursor: pointer;\n }\n\n @media (hover: hover) and (pointer: fine) {\n .comment:hover .comment__avatar {\n --avatar-translate-x: 2px;\n }\n\n .comment__avatar:hover {\n /* --avatar-scale: 1.06; */\n }\n\n .comment .comment__menu {\n display: none;\n }\n\n .comment:hover .comment__menu {\n display: flex;\n }\n }\n\n .comment--is-selected .comment__avatar {\n --avatar-translate-x: 2px;\n }\n\n .comment__avatar {\n --comment-avatar-border-size: 0;\n --avatar-translate-x: 0px;\n --avatar-scale: 1;\n width: var(--avatar-size);\n height: var(--avatar-size);\n transform: translateX(var(--avatar-translate-x)) scale(var(--avatar-scale));\n transition: transform var(--pop-duration-quick) var(--pop-ease-quick);\n }\n\n .comment__user {\n display: flex;\n width: var(--width);\n align-items: flex-start;\n gap: 10px;\n flex-shrink: 0;\n align-self: stretch;\n }\n\n .comment__content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n flex: 1 0 0;\n align-self: stretch;\n }\n\n .comment__info {\n display: flex;\n align-items: flex-start;\n align-self: stretch;\n }\n\n .comment__menu {\n display: flex;\n justify-self: flex-end;\n }\n\n .comment__menu-trigger {\n background: none;\n border: none;\n cursor: pointer;\n border-radius: 9999px;\n aspect-ratio: 1;\n position: relative;\n }\n\n .comment__menu-trigger:before {\n content: \"\";\n height: 40px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 40px;\n }\n\n .comment__user-meta {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n flex-shrink: 0;\n align-self: stretch;\n flex-grow: 1;\n }\n\n .comment__user-name {\n color: var(--pop-foreground);\n font-feature-settings:\n \"liga\" off,\n \"clig\" off;\n font-family: Inter, sans-serif;\n font-size: var(--text-widget-base, 13px);\n font-style: normal;\n font-weight: 500;\n line-height: var(--text-widget-base--line-height, 18px);\n letter-spacing: -0.08px;\n }\n\n .comment__timestamp {\n color: var(--pop-muted-foreground);\n font-feature-settings:\n \"liga\" off,\n \"clig\" off;\n font-family: Inter, sans-serif;\n font-size: var(--text-widget-base, 13px);\n font-style: normal;\n font-weight: 400;\n line-height: var(--text-widget-base--line-height, 18px);\n letter-spacing: -0.08px;\n opacity: 0.5;\n }\n\n .comment__text {\n align-self: stretch;\n color: var(--pop-foreground);\n font-feature-settings:\n \"liga\" off,\n \"clig\" off;\n font-family: Inter, sans-serif;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n letter-spacing: -0.08px;\n text-align: left;\n\n /* Clamping when not expanded */\n display: -webkit-box;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .comment__text.expanded,\n .comment--is-selected .comment__text {\n -webkit-line-clamp: initial;\n display: block;\n }\n\n .comment__mention {\n color: #155eef;\n font-weight: 500;\n }\n\n .comment__menu {\n position: relative;\n }\n\n .comment__dropdown {\n background-color: var(--pop-background);\n border-radius: 6px;\n box-shadow: var(--pop-shadow-xl);\n display: none;\n flex-direction: column;\n gap: 6px;\n padding: 6px;\n pointer-events: auto;\n position: fixed;\n width: 120px;\n z-index: 1000;\n }\n\n .comment__dropdown.is-open {\n display: flex;\n }\n\n .comment__dropdown-item {\n align-items: center;\n background: none;\n border-radius: 4px;\n border: none;\n color: var(--pop-foreground);\n cursor: pointer;\n display: flex;\n flex: 1 0 0;\n font-family: Inter, sans-serif;\n font-size: 14px;\n font-weight: 500;\n justify-content: center;\n min-height: 40px;\n padding: 0 12px;\n text-align: left;\n transition: background-color 100ms ease;\n width: 100%;\n }\n\n .comment__dropdown-item:hover {\n background-color: var(--pop-comment-hover, rgba(0, 0, 0, 0.04));\n }\n\n .comment__dropdown-item--danger {\n color: #ef4444;\n }\n\n .comment__edit-form {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 8px;\n margin-top: 4px;\n }\n\n .comment__edit-input {\n width: 100%;\n background: var(--pop-background, #ffffff);\n color: var(--pop-foreground, #000000);\n border: 1px solid var(--pop-border, #e4e4e7);\n border-radius: var(--pop-radius-sm, 4px);\n padding: 6px 8px;\n font-family: Inter, sans-serif;\n font-size: 13px;\n line-height: 18px;\n resize: vertical;\n outline: none;\n }\n\n .comment__edit-input:focus {\n border-color: var(--pop-ring, #000020);\n }\n\n .comment__edit-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n .comment__edit-save,\n .comment__edit-cancel {\n font-size: 12px;\n padding: 4px 8px;\n cursor: pointer;\n }\n\n .comment--deleted .comment__text {\n color: var(--pop-muted-foreground, #697586);\n font-style: italic;\n opacity: 0.8;\n }\n"), nr = class extends Y {
|
|
2591
2599
|
constructor(...e) {
|
|
2592
2600
|
super(...e), this.events = { click: "onClick" }, this._expanded = !1, this._dropdownOpen = !1, this._onOutsideClick = (e) => {
|
|
2593
2601
|
let t = e.composedPath(), n = this.getElement(X("dropdown")), r = this.getElement(X("menu-trigger"));
|
|
@@ -2610,7 +2618,7 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2610
2618
|
return this.size === "sm" ? "xs" : "sm";
|
|
2611
2619
|
}
|
|
2612
2620
|
get styleSheets() {
|
|
2613
|
-
return [
|
|
2621
|
+
return [tr];
|
|
2614
2622
|
}
|
|
2615
2623
|
toggleDropdown() {
|
|
2616
2624
|
this._dropdownOpen ? this.closeDropdown() : this.openDropdown();
|
|
@@ -2621,12 +2629,12 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2621
2629
|
if (e && t) {
|
|
2622
2630
|
e.classList.add("is-open");
|
|
2623
2631
|
let n = () => {
|
|
2624
|
-
|
|
2632
|
+
nt(t, e, {
|
|
2625
2633
|
placement: "bottom-end",
|
|
2626
2634
|
middleware: [
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2635
|
+
$e(4),
|
|
2636
|
+
tt(),
|
|
2637
|
+
et({ padding: 8 })
|
|
2630
2638
|
],
|
|
2631
2639
|
strategy: "fixed"
|
|
2632
2640
|
}).then(({ x: t, y: n }) => {
|
|
@@ -2637,7 +2645,7 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2637
2645
|
});
|
|
2638
2646
|
});
|
|
2639
2647
|
};
|
|
2640
|
-
this._floatingCleanup =
|
|
2648
|
+
this._floatingCleanup = Qe(t, e, n), document.addEventListener("mousedown", this._onOutsideClick);
|
|
2641
2649
|
}
|
|
2642
2650
|
}
|
|
2643
2651
|
closeDropdown() {
|
|
@@ -2699,7 +2707,7 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2699
2707
|
if (!t) return;
|
|
2700
2708
|
let n = () => {
|
|
2701
2709
|
let e = this.getElement(X("timestamp"));
|
|
2702
|
-
e && (e.textContent =
|
|
2710
|
+
e && (e.textContent = er(t.createdAt));
|
|
2703
2711
|
let r = Date.now() - (typeof t.createdAt == "number" ? t.createdAt : Date.parse(String(t.createdAt))), i = 6e4;
|
|
2704
2712
|
i = r < 6e4 ? 5e3 : r < 36e5 ? 6e4 : 18e5, this._timeUpdateTimer = setTimeout(n, i);
|
|
2705
2713
|
}, r = Date.now() - (typeof t.createdAt == "number" ? t.createdAt : Date.parse(String(t.createdAt))) < 6e4 ? 5e3 : 6e4;
|
|
@@ -2710,6 +2718,8 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2710
2718
|
}
|
|
2711
2719
|
setupEffects() {
|
|
2712
2720
|
this.addEffect(() => {
|
|
2721
|
+
this.setAttribute("data-size", this.gridStore.commentSize.value);
|
|
2722
|
+
}), this.addEffect(() => {
|
|
2713
2723
|
let e = this.getAttribute("comment-id"), t = this.authStore.currentUser.value, n = this.gridStore.replyingTo.value, r = this.gridStore.editingCommentId.value, i = this.gridStore.scrollingCommentId.value;
|
|
2714
2724
|
this.classList.toggle("is-signed-in", t !== null), this.classList.toggle("is-replying", e !== null && n === e), this.classList.toggle("is-editing", e !== null && r === e), this.gridStore.comments.value, this.render(), this.startTimeUpdates(), e && i === e && setTimeout(() => {
|
|
2715
2725
|
let t = this.shadowRoot?.querySelector(`#comment-${e}`);
|
|
@@ -2728,7 +2738,7 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2728
2738
|
if (!e) return "";
|
|
2729
2739
|
let t = this.gridStore.comments.value.find((t) => t.id === e);
|
|
2730
2740
|
if (!t) return "";
|
|
2731
|
-
let n = t.status === "deleted", r = t.authorDeleted === !0, i = n || r, a = i ? "" : t.author?.image ? `<img src="${t.author.image}" alt="${t.author.name ?? "User avatar"}" />` :
|
|
2741
|
+
let n = t.status === "deleted", r = t.authorDeleted === !0, i = n || r, a = i ? "" : t.author?.image ? `<img src="${t.author.image}" alt="${t.author.name ?? "User avatar"}" />` : rt(t.author?.name), o = this.gridStore.replyingTo.value, s = e !== null && o === e, c = this.size, l = this.authStore.currentUser.value, u = l && t.author && l.id === t.author.id, d = l && !n ? `<div class="comment__menu">
|
|
2732
2742
|
<button class="comment__menu-trigger" data-ref="menu-trigger" type="button">
|
|
2733
2743
|
<svg
|
|
2734
2744
|
width="18"
|
|
@@ -2798,7 +2808,7 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2798
2808
|
<div class="comment__user-name">
|
|
2799
2809
|
${n ? "[Deleted]" : r ? "[Deleted user]" : t.author?.name ?? ""}
|
|
2800
2810
|
</div>
|
|
2801
|
-
<div class="comment__timestamp" data-ref="timestamp">${
|
|
2811
|
+
<div class="comment__timestamp" data-ref="timestamp">${er(t.createdAt)}</div>
|
|
2802
2812
|
</div>
|
|
2803
2813
|
${d}
|
|
2804
2814
|
</div>
|
|
@@ -2808,15 +2818,15 @@ var er = J("\n :host {\n display: block;\n width: 100%;\n --pop-commen
|
|
|
2808
2818
|
`;
|
|
2809
2819
|
}
|
|
2810
2820
|
};
|
|
2811
|
-
Z([
|
|
2821
|
+
Z([K($)], nr.prototype, "gridStore", void 0), Z([K(G)], nr.prototype, "authStore", void 0), customElements.get("pop-comment") || customElements.define("pop-comment", nr);
|
|
2812
2822
|
//#endregion
|
|
2813
2823
|
//#region src/components/pop-feed.ts
|
|
2814
|
-
var
|
|
2824
|
+
var rr = J("\n :host {\n display: flex;\n background: var(--pop-background);\n border-radius: var(--pop-radius-2xl);\n /* border: 1px solid var(--pop-background); */\n box-shadow: var(--pop-shadow-3xl);\n display: block;\n left: 0;\n max-height: 340px;\n max-width: 400px;\n min-width: 343px;\n opacity: 0;\n overflow: hidden;\n padding: 0;\n pointer-events: none;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 9999;\n transform: scale(0.94);\n transition:\n opacity var(--pop-duration-quick) var(--pop-ease-quick),\n transform var(--pop-duration-quick) var(--pop-ease-quick),\n display var(--pop-duration-quick) allow-discrete;\n }\n\n :host([data-current-placement=\"top-start\"]) {\n transform-origin: left bottom;\n }\n\n :host([data-current-placement=\"bottom-start\"]) {\n transform-origin: left top;\n }\n\n :host([data-current-placement=\"top-end\"]) {\n transform-origin: right bottom;\n }\n\n :host([data-current-placement=\"bottom-end\"]) {\n transform-origin: right top;\n }\n\n :host([data-current-placement=\"top\"]) {\n transform-origin: bottom;\n }\n\n :host([data-current-placement=\"bottom\"]) {\n transform-origin: top;\n }\n\n :host([open]) {\n opacity: 1;\n pointer-events: auto;\n transform: scale(1);\n\n @starting-style {\n display: flex;\n opacity: 0;\n transform: scale(0.94);\n }\n }\n\n /* .feed__content and .feed__footer are stacked in the same grid cell\n (see grid-area below) rather than laid out as flex siblings, so the\n footer can grow taller (email/code/no-code states) and overlay the\n comment list instead of pushing it — the grid row auto-sizes to\n whichever of the two is taller, which a manual absolute-position +\n fixed-height-reservation approach can't do without clipping against\n :host's overflow:hidden when the footer is the tall one. */\n .feed {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n /* height (not just max-height) gives the grid row a definite size to\n shrink to — otherwise an auto-height grid container sizes its 1fr\n row to content's max-content height regardless of max-height,\n clipping instead of scrolling. */\n height: fit-content(340px);\n max-height: 340px;\n }\n\n .feed__content {\n align-items: flex-start;\n /* stretch (not start) so .feed__main inherits a bounded height to\n scroll within, instead of growing to fit all comments. */\n align-self: stretch;\n display: flex;\n gap: 8px;\n grid-area: 1 / 1;\n min-height: 0;\n width: 100%;\n }\n\n .feed__empty {\n padding: 24px 16px 24px 8px;\n text-align: center;\n font-family: Inter, sans-serif;\n font-size: 13px;\n color: var(--pop-muted-foreground);\n line-height: 18px;\n }\n\n .feed__footer {\n align-self: end;\n grid-area: 1 / 1;\n width: 100%;\n z-index: 1;\n }\n\n /* Full-widget scrim for auth errors (e.g. \"You were signed out\"). Sits in\n the same grid cell as the content and footer, above both, so the message\n never takes layout space from the join bar. Click to dismiss. */\n .feed__notice {\n align-items: center;\n background: color-mix(in srgb, var(--pop-background) 80%, transparent);\n color: var(--pop-foreground);\n cursor: pointer;\n display: flex;\n font-family: Inter, sans-serif;\n font-size: 13px;\n grid-area: 1 / 1;\n justify-content: center;\n line-height: 18px;\n padding: 24px;\n text-align: center;\n z-index: 2;\n }\n\n .feed__notice-box {\n align-items: center;\n background: var(--pop-background);\n border: 1px solid var(--pop-border);\n border-radius: var(--pop-radius-sm);\n cursor: default;\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n }\n\n .feed__notice-box:focus {\n outline: none;\n }\n\n .feed__notice[hidden] {\n display: none;\n }\n\n .feed__notice-dismiss {\n background: var(--pop-foreground);\n border: none;\n border-radius: var(--pop-radius-xs);\n color: var(--pop-background);\n cursor: pointer;\n font: inherit;\n font-weight: 600;\n padding: 6px 12px;\n }\n\n .feed__notice-dismiss:focus-visible {\n outline: 2px solid var(--pop-ring);\n outline-offset: 2px;\n }\n\n .feed__main {\n align-items: stretch;\n align-self: stretch;\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n gap: 16px;\n min-height: 0;\n overflow: hidden auto;\n /* Bottom padding reserves space for the idle \"Join the Conversation\"\n bar (~50px) so comments end above it, same as before this became an\n overlay — a taller auth-panel state then naturally covers more. */\n padding: 8px 10px 58px 8px;\n }\n\n .feed__main::-webkit-scrollbar {\n width: 4px;\n }\n\n .feed__main::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .feed__main::-webkit-scrollbar-thumb {\n background: var(--pop-border);\n border-radius: 100px;\n }\n"), ir = class extends Y {
|
|
2815
2825
|
constructor(...e) {
|
|
2816
2826
|
super(...e), this._footerChild = null, this._wasOpen = !1, this._noticeRetryAt = null, this.events = { click: "onClick" };
|
|
2817
2827
|
}
|
|
2818
2828
|
get styleSheets() {
|
|
2819
|
-
return [
|
|
2829
|
+
return [rr];
|
|
2820
2830
|
}
|
|
2821
2831
|
onClick(e) {
|
|
2822
2832
|
e.target.closest(X("notice")) && this.authStore.authErrorRetryAt.value === null && this.authStore.dismissAuthError();
|
|
@@ -2899,7 +2909,7 @@ var nr = J("\n :host {\n display: flex;\n background: var(--pop-backgroun
|
|
|
2899
2909
|
let e = n.hidden;
|
|
2900
2910
|
n.hidden = !t, this.setText(X("notice-message"), t ?? "");
|
|
2901
2911
|
let r = t ? this.authStore.authErrorRetryAt.value : null;
|
|
2902
|
-
t && this.setText(X("notice-dismiss"), this.authStore.authErrorAction.value), this.syncNoticeCountdown(r), this.getElement(X("content"))?.toggleAttribute("inert", !!t), this.getElement(X("footer"))?.toggleAttribute("inert", !!t), t && e && this.gridStore.open.value && this.getElement(X(r === null ? "notice-dismiss" : "notice-box"))?.focus();
|
|
2912
|
+
t && this.setText(X("notice-dismiss"), this.authStore.authErrorAction.value), this.syncNoticeCountdown(r), this.getElement(X("content"))?.toggleAttribute("inert", !!t), this.getElement(X("footer"))?.toggleAttribute("inert", !!t || this.gridStore.demo), t && e && this.gridStore.open.value && this.getElement(X(r === null ? "notice-dismiss" : "notice-box"))?.focus();
|
|
2903
2913
|
}
|
|
2904
2914
|
let r = this.getElement(X("footer"));
|
|
2905
2915
|
if (r) {
|
|
@@ -2911,40 +2921,84 @@ var nr = J("\n :host {\n display: flex;\n background: var(--pop-backgroun
|
|
|
2911
2921
|
return "\n <div class=\"feed\">\n <div class=\"feed__content\" data-ref=\"content\">\n <div class=\"feed__main\" data-ref=\"main\"></div>\n </div>\n <div class=\"feed__footer\" data-ref=\"footer\"></div>\n <div class=\"feed__notice\" data-ref=\"notice\" role=\"alert\" hidden>\n <div class=\"feed__notice-box\" data-ref=\"notice-box\" tabindex=\"-1\">\n <span data-ref=\"notice-message\"></span>\n <span data-ref=\"notice-countdown\" role=\"timer\" hidden></span>\n <button class=\"feed__notice-dismiss\" data-ref=\"notice-dismiss\" type=\"button\">\n Dismiss\n </button>\n </div>\n </div>\n </div>\n ";
|
|
2912
2922
|
}
|
|
2913
2923
|
};
|
|
2914
|
-
Z([
|
|
2924
|
+
Z([K($)], ir.prototype, "gridStore", void 0), Z([K(G)], ir.prototype, "authStore", void 0), customElements.get("pop-feed") || customElements.define("pop-feed", ir);
|
|
2915
2925
|
//#endregion
|
|
2916
2926
|
//#region ../../node_modules/.pnpm/composed-offset-position@0.0.6_@floating-ui+utils@0.2.12/node_modules/composed-offset-position/dist/composed-offset-position.browser.min.mjs
|
|
2917
|
-
function ir(e) {
|
|
2918
|
-
return or(e);
|
|
2919
|
-
}
|
|
2920
2927
|
function ar(e) {
|
|
2921
|
-
return e
|
|
2928
|
+
return sr(e);
|
|
2922
2929
|
}
|
|
2923
2930
|
function or(e) {
|
|
2924
|
-
|
|
2925
|
-
|
|
2931
|
+
return e.assignedSlot ? e.assignedSlot : e.parentNode instanceof ShadowRoot ? e.parentNode.host : e.parentNode;
|
|
2932
|
+
}
|
|
2933
|
+
function sr(e) {
|
|
2934
|
+
for (let t = e; t; t = or(t)) if (t instanceof Element && getComputedStyle(t).display === "none") return null;
|
|
2935
|
+
for (let t = or(e); t; t = or(t)) {
|
|
2926
2936
|
if (!(t instanceof Element)) continue;
|
|
2927
2937
|
let e = getComputedStyle(t);
|
|
2928
|
-
if (e.display !== "contents" && (e.position !== "static" ||
|
|
2938
|
+
if (e.display !== "contents" && (e.position !== "static" || ye(e) || t.tagName === "BODY")) return t;
|
|
2929
2939
|
}
|
|
2930
2940
|
return null;
|
|
2931
2941
|
}
|
|
2932
2942
|
//#endregion
|
|
2943
|
+
//#region src/lib/position-feed.ts
|
|
2944
|
+
var cr = 16, lr = (e) => Ye.getOffsetParent(e, ar);
|
|
2945
|
+
function ur(e, t, n) {
|
|
2946
|
+
let r = [$e({
|
|
2947
|
+
mainAxis: n === "down" ? -16 : -54,
|
|
2948
|
+
crossAxis: -18
|
|
2949
|
+
})];
|
|
2950
|
+
return (!n || n === "auto") && r.push(tt({
|
|
2951
|
+
fallbackPlacements: ["bottom-start", "top-start"],
|
|
2952
|
+
fallbackStrategy: "bestFit",
|
|
2953
|
+
padding: cr
|
|
2954
|
+
})), r.push(et({
|
|
2955
|
+
padding: cr,
|
|
2956
|
+
crossAxis: !0
|
|
2957
|
+
})), Qe(e, t, () => {
|
|
2958
|
+
nt(e, t, {
|
|
2959
|
+
placement: n === "down" ? "bottom-start" : "top-start",
|
|
2960
|
+
middleware: r,
|
|
2961
|
+
strategy: "fixed",
|
|
2962
|
+
platform: {
|
|
2963
|
+
...Ye,
|
|
2964
|
+
getOffsetParent: lr
|
|
2965
|
+
}
|
|
2966
|
+
}).then(({ x: e, y: n, placement: r }) => {
|
|
2967
|
+
t.setAttribute("data-current-placement", r), Object.assign(t.style, {
|
|
2968
|
+
left: `${e}px`,
|
|
2969
|
+
top: `${n}px`
|
|
2970
|
+
});
|
|
2971
|
+
});
|
|
2972
|
+
});
|
|
2973
|
+
}
|
|
2974
|
+
//#endregion
|
|
2933
2975
|
//#region src/components/pop-grid.ts
|
|
2934
|
-
var
|
|
2976
|
+
var dr = "https://www.popgrids.io", fr = /* @__PURE__ */ new Set([
|
|
2935
2977
|
"start",
|
|
2936
2978
|
"center",
|
|
2937
2979
|
"end"
|
|
2938
|
-
]),
|
|
2980
|
+
]), pr = /* @__PURE__ */ new Set(["sm", "lg"]), mr = /* @__PURE__ */ new Set([
|
|
2939
2981
|
"auto",
|
|
2940
2982
|
"up",
|
|
2941
2983
|
"down"
|
|
2942
|
-
]),
|
|
2984
|
+
]), hr = J("\n :host {\n display: block;\n position: relative;\n }\n\n .grid {\n display: flex;\n height: 100%;\n position: relative;\n width: 100%;\n }\n\n .grid--align-start {\n justify-content: flex-start;\n }\n\n .grid--align-center {\n justify-content: center;\n }\n\n .grid--align-end {\n justify-content: flex-end;\n }\n"), gr = class extends Y {
|
|
2943
2985
|
constructor(...e) {
|
|
2944
2986
|
super(...e), this._initialized = !1;
|
|
2945
2987
|
}
|
|
2988
|
+
get demo() {
|
|
2989
|
+
return this._demo;
|
|
2990
|
+
}
|
|
2991
|
+
set demo(e) {
|
|
2992
|
+
this._demo = e, this._store?.demo && this._store.showDemo(e);
|
|
2993
|
+
}
|
|
2994
|
+
get open() {
|
|
2995
|
+
return this._store?.open.value ?? !1;
|
|
2996
|
+
}
|
|
2997
|
+
set open(e) {
|
|
2998
|
+
this._store && (this._store.open.value = e);
|
|
2999
|
+
}
|
|
2946
3000
|
get styleSheets() {
|
|
2947
|
-
return [
|
|
3001
|
+
return [hr];
|
|
2948
3002
|
}
|
|
2949
3003
|
static get observedAttributes() {
|
|
2950
3004
|
return [
|
|
@@ -2958,25 +3012,31 @@ var sr = "https://www.popgrids.io", cr = /* @__PURE__ */ new Set([
|
|
|
2958
3012
|
connectedCallback() {
|
|
2959
3013
|
if (this._initialized) return;
|
|
2960
3014
|
this._initialized = !0;
|
|
2961
|
-
let e = this.getAttribute("data-key") ?? this.getAttribute("public-key") ?? "", t = this.getAttribute("data-api-url") ?? this.getAttribute("api-url") ??
|
|
2962
|
-
this._authStore = new
|
|
3015
|
+
let e = this.getAttribute("data-key") ?? this.getAttribute("public-key") ?? "", t = this.getAttribute("data-api-url") ?? this.getAttribute("api-url") ?? dr, n = this.getAttribute("data-page-url") ?? this.getAttribute("page-url") ?? location.href, r = this.getAttribute("data-id"), i = this.hasAttribute("data-demo");
|
|
3016
|
+
if (this._authStore = new G({
|
|
2963
3017
|
apiUrl: t,
|
|
2964
|
-
publicKey: e
|
|
2965
|
-
|
|
3018
|
+
publicKey: e,
|
|
3019
|
+
demo: i
|
|
3020
|
+
}), Kt(this, this._authStore), this._store = new $({
|
|
2966
3021
|
apiUrl: t,
|
|
2967
3022
|
publicKey: e,
|
|
2968
3023
|
pageUrl: n,
|
|
2969
3024
|
externalId: r,
|
|
3025
|
+
demo: i,
|
|
2970
3026
|
authStore: this._authStore
|
|
2971
|
-
}),
|
|
3027
|
+
}), Kt(this, this._store), super.connectedCallback(), this._store.setOverrides(this._readOverridesFromAttributes()), this._store.demo) {
|
|
3028
|
+
this._demo && this._store.showDemo(this._demo);
|
|
3029
|
+
return;
|
|
3030
|
+
}
|
|
3031
|
+
this._store.load();
|
|
2972
3032
|
}
|
|
2973
3033
|
_readOverridesFromAttributes() {
|
|
2974
3034
|
let e = {}, t = this.getAttribute("data-align");
|
|
2975
|
-
t &&
|
|
3035
|
+
t && fr.has(t) && (e.align = t);
|
|
2976
3036
|
let n = this.getAttribute("data-layout");
|
|
2977
|
-
n &&
|
|
3037
|
+
n && pr.has(n) && (e.layout = n);
|
|
2978
3038
|
let r = this.getAttribute("data-position");
|
|
2979
|
-
r &&
|
|
3039
|
+
r && mr.has(r) && (e.position = r);
|
|
2980
3040
|
let i = this.getAttribute("data-icon");
|
|
2981
3041
|
i && (e.icon = i);
|
|
2982
3042
|
let a = this.getAttribute("data-preview-count");
|
|
@@ -3005,7 +3065,7 @@ var sr = "https://www.popgrids.io", cr = /* @__PURE__ */ new Set([
|
|
|
3005
3065
|
this._applyOverridesFromAttributes();
|
|
3006
3066
|
}
|
|
3007
3067
|
disconnectedCallback() {
|
|
3008
|
-
this._floatingCleanup?.(), this._store.destroy(), this._authStore.destroy(),
|
|
3068
|
+
this._floatingCleanup?.(), this._store.destroy(), this._authStore.destroy(), qt(this), super.disconnectedCallback();
|
|
3009
3069
|
}
|
|
3010
3070
|
setupEffects() {
|
|
3011
3071
|
this.addEffect(() => {
|
|
@@ -3023,48 +3083,22 @@ var sr = "https://www.popgrids.io", cr = /* @__PURE__ */ new Set([
|
|
|
3023
3083
|
let t = this.getElement("pop-widget"), n = this.getElement("pop-feed");
|
|
3024
3084
|
if (!t || !n) return;
|
|
3025
3085
|
let r = this._store.grid.value;
|
|
3026
|
-
|
|
3027
|
-
let i = [];
|
|
3028
|
-
i = [tt({
|
|
3029
|
-
mainAxis: r.position === "down" ? -16 : -54,
|
|
3030
|
-
crossAxis: -18
|
|
3031
|
-
})], (!r.position || r.position === "auto") && i.push(rt({
|
|
3032
|
-
fallbackPlacements: ["bottom-start", "top-start"],
|
|
3033
|
-
fallbackStrategy: "bestFit",
|
|
3034
|
-
padding: 16
|
|
3035
|
-
}));
|
|
3036
|
-
let a = (e) => Ze.getOffsetParent(e, ir), o = () => {
|
|
3037
|
-
it(t, n, {
|
|
3038
|
-
placement: r.position === "down" ? "bottom-start" : "top-start",
|
|
3039
|
-
middleware: i,
|
|
3040
|
-
strategy: "fixed",
|
|
3041
|
-
platform: {
|
|
3042
|
-
...Ze,
|
|
3043
|
-
getOffsetParent: a
|
|
3044
|
-
}
|
|
3045
|
-
}).then(({ x: e, y: t, placement: r }) => {
|
|
3046
|
-
n.setAttribute("data-current-placement", r), Object.assign(n.style, {
|
|
3047
|
-
left: `${e}px`,
|
|
3048
|
-
top: `${t}px`
|
|
3049
|
-
});
|
|
3050
|
-
});
|
|
3051
|
-
};
|
|
3052
|
-
this._floatingCleanup = et(t, n, o);
|
|
3086
|
+
r && (this._floatingCleanup = ur(t, n, r.position));
|
|
3053
3087
|
});
|
|
3054
3088
|
}
|
|
3055
3089
|
getTemplate() {
|
|
3056
3090
|
return "\n <div class=\"grid\" data-ref=\"grid\">\n <pop-widget></pop-widget>\n <pop-feed></pop-feed>\n </div>\n ";
|
|
3057
3091
|
}
|
|
3058
3092
|
};
|
|
3059
|
-
customElements.get("pop-grid") || customElements.define("pop-grid",
|
|
3093
|
+
customElements.get("pop-grid") || customElements.define("pop-grid", gr);
|
|
3060
3094
|
//#endregion
|
|
3061
3095
|
//#region src/components/pop-widget.ts
|
|
3062
|
-
var
|
|
3096
|
+
var _r = J("\n :host {\n --error-badge-bg: #fef2f2;\n --error-badge-text: #991b1b;\n --error-badge-border: #fecaca;\n\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n }\n\n @media (prefers-color-scheme: dark) {\n :host {\n --error-badge-bg: #450a0a;\n --error-badge-text: #fca5a5;\n --error-badge-border: #7f1d1d;\n }\n }\n\n :host(.dark) {\n --error-badge-bg: #450a0a;\n --error-badge-text: #fca5a5;\n --error-badge-border: #7f1d1d;\n }\n\n :host([data-error]) {\n cursor: default;\n }\n\n .error-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: var(--pop-radius-full);\n border: 1px solid var(--error-badge-border);\n background: var(--error-badge-bg);\n color: var(--error-badge-text);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n white-space: nowrap;\n }\n\n .widget {\n display: inline-flex;\n align-items: flex-start;\n }\n\n .widget > :not([hidden]) ~ :not([hidden]) {\n margin-left: -6px;\n }\n\n .skeleton {\n width: 32px;\n height: 32px;\n background: var(--pop-muted);\n animation: pulse 1.5s ease-in-out infinite;\n }\n\n @keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n }\n\n .count {\n --count-size: calc(32px + var(--count-border-size));\n --count-background: var(--pop-background);\n --count-border-color: rgba(0 0 32 / 16%);\n --count-border-size: 1px;\n --count-color: var(--pop-foreground);\n\n align-items: center;\n background-color: var(--pop-background);\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n padding: calc(var(--count-border-size) / 2);\n position: relative;\n z-index: 10;\n\n width: calc(var(--count-size) + (calc(var(--count-border-size))));\n height: calc(var(--count-size) + (calc(var(--count-border-size))));\n }\n\n .count__background {\n background-color: var(--count-border-color);\n position: absolute;\n top: 0;\n left: 0;\n z-index: 10;\n width: 100%;\n height: 100%;\n }\n\n .count__content {\n align-items: center;\n background: var(--count-background);\n display: flex;\n justify-content: center;\n overflow: hidden;\n height: var(--count-size);\n width: var(--count-size);\n }\n\n .count__label {\n color: var(--count-color);\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n letter-spacing: -0.96px;\n line-height: 28px;\n text-align: center;\n user-select: none;\n }\n\n .count__label-container {\n align-items: center;\n background: var(--pop-background);\n display: flex;\n height: calc(100% - calc(var(--count-border-size) * 2));\n justify-content: center;\n position: relative;\n text-indent: calc(calc(var(--count-border-size) * 2) * -1);\n width: calc(100% - calc(var(--count-border-size) * 2));\n z-index: 20;\n }\n\n /* Above .count (z-index: 10) — otherwise it paints underneath despite\n * coming later in the widget's facepile, since z-index only applies to\n * positioned elements and this one had neither. */\n .widget pop-comment-icon {\n position: relative;\n z-index: 20;\n top: 1px;\n }\n"), vr = class extends Y {
|
|
3063
3097
|
constructor(...e) {
|
|
3064
3098
|
super(...e), this.events = { click: "onClick" };
|
|
3065
3099
|
}
|
|
3066
3100
|
get styleSheets() {
|
|
3067
|
-
return [
|
|
3101
|
+
return [_r];
|
|
3068
3102
|
}
|
|
3069
3103
|
onClick() {
|
|
3070
3104
|
this.gridStore.error.value || (this.gridStore.open.value = !this.gridStore.open.value);
|
|
@@ -3079,15 +3113,15 @@ var pr = J("\n :host {\n --error-badge-bg: #fef2f2;\n --error-badge-text:
|
|
|
3079
3113
|
getTemplate() {
|
|
3080
3114
|
if (this.gridStore.loading.value) return "<div class=\"widget\"><div class=\"skeleton mask mask-squircle\"></div></div>";
|
|
3081
3115
|
if (this.gridStore.error.value) return "<div class=\"error-badge\">Error: there was a problem loading the PopGrid</div>";
|
|
3082
|
-
let e = this.gridStore.previewAvatars.value, t = this.gridStore.comments.value.length, n = this.gridStore.grid.value
|
|
3116
|
+
let e = this.gridStore.previewAvatars.value, t = this.gridStore.comments.value.length, n = this.gridStore.grid.value?.icon === "brand" ? "brand" : "neutral";
|
|
3083
3117
|
return `
|
|
3084
3118
|
<div class="widget">
|
|
3085
3119
|
${e.map((t, n) => {
|
|
3086
|
-
let
|
|
3087
|
-
return t?.image ? `<pop-comment-avatar size="
|
|
3120
|
+
let r = e.length + n, i = t?.id ?? t?.name ?? "";
|
|
3121
|
+
return t?.image ? `<pop-comment-avatar size="xs" style="z-index: ${r}" data-color-key="${i}">
|
|
3088
3122
|
<img src="${t.image}" alt="${t.name ?? "User"}" />
|
|
3089
|
-
</pop-comment-avatar>` : `<pop-comment-avatar size="
|
|
3090
|
-
${
|
|
3123
|
+
</pop-comment-avatar>` : `<pop-comment-avatar size="xs" style="z-index: ${r}" data-color-key="${i}">
|
|
3124
|
+
${rt(t?.name)}
|
|
3091
3125
|
</pop-comment-avatar>`;
|
|
3092
3126
|
}).join("")}
|
|
3093
3127
|
<div class="count mask mask-squircle">
|
|
@@ -3098,14 +3132,14 @@ var pr = J("\n :host {\n --error-badge-bg: #fef2f2;\n --error-badge-text:
|
|
|
3098
3132
|
</div>
|
|
3099
3133
|
</span>
|
|
3100
3134
|
</div>
|
|
3101
|
-
<pop-comment-icon variant="add" theme="${
|
|
3135
|
+
<pop-comment-icon variant="add" theme="${n}" size="xs"></pop-comment-icon>
|
|
3102
3136
|
</div>
|
|
3103
3137
|
`;
|
|
3104
3138
|
}
|
|
3105
3139
|
};
|
|
3106
3140
|
//#endregion
|
|
3107
3141
|
//#region src/index.ts
|
|
3108
|
-
if (Z([
|
|
3142
|
+
if (Z([K($)], vr.prototype, "gridStore", void 0), customElements.get("pop-widget") || customElements.define("pop-widget", vr), typeof document < "u") {
|
|
3109
3143
|
let e = "https://rsms.me/inter/inter.css";
|
|
3110
3144
|
if (!document.querySelector(`link[href="${e}"]`)) {
|
|
3111
3145
|
let t = document.createElement("link");
|