@pixelmatters/markup 1.18.6 → 1.19.0
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/README.md +6 -6
- package/dist/widget.js +792 -665
- package/dist/widget.js.map +1 -1
- package/package.json +1 -1
- package/skills/install-markup-widget/SKILL.md +4 -4
package/dist/widget.js
CHANGED
|
@@ -248,7 +248,7 @@ e = h.slice, t = { __e: function(e, t, n, r) {
|
|
|
248
248
|
}, O.__r = 0, s = Math.random().toString(8), c = "__d" + s, l = "__a" + s, u = /(PointerCapture)$|Capture$/i, d = 0, f = ne(!1), p = ne(!0);
|
|
249
249
|
//#endregion
|
|
250
250
|
//#region src/styles.css?inline
|
|
251
|
-
var fe = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-success:oklch(62% .16 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-accent-glow);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{width:260px;padding:6px}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:380px;padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10.5px}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:8px;margin-top:6px;padding:8px 10px;font-size:10.5px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-unresolved{opacity:.6}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:360px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-brand);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}@keyframes markup-menu-in-side{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;align-items:center;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;border-radius:3px;flex-shrink:0;width:auto;height:25px;margin:-5px 0 -5px auto;display:block}.markup-screenshot-redacted{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10px}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success,oklch(62% .16 150));font-family:var(--markup-font-mono);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{margin-top:3px;padding-left:10px}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:5px 0 0;font-size:10px;line-height:1.5}.markup-screenshot-help-code{font-family:var(--markup-font-mono);color:var(--markup-ink)}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-toolbar,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0 0 4px;padding:4px;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:380px;max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop[data-panel=privacy]{width:340px}.markup-panel-pop[data-panel=shortcuts]{width:320px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-pop[data-pop=privacy],.markup-pop[data-pop=shortcuts]{padding:0}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", pe = 1e4, N = 20, me = 60, he = null, ge = [], P = null, _e = !1, ve = ye();
|
|
251
|
+
var fe = ":host{--markup-paper:#fdfcfa;--markup-surface:#fff;--markup-surface-2:oklch(98.5% .002 250);--markup-surface-3:oklch(95% .003 250);--markup-hover:oklch(95% .003 250);--markup-ink:#1a1614;--markup-ink-soft:oklch(32% .005 250);--markup-muted:#6b6661;--markup-border:#1a16141a;--markup-border-strong:#1a16142e;--markup-brand:#e35d2a;--markup-brand-hover:#c84d20;--markup-accent-soft:oklch(95% .04 60);--markup-accent-ink:oklch(45% .14 38);--markup-accent-glow:color-mix(in srgb, var(--markup-brand) 28%, transparent);--markup-team:#2a4ac8;--markup-shadow:0 1px 2px #1a16140f, 0 8px 28px #1a16141f;--markup-shadow-toolbar:0 1px 1px #0000000a, 0 4px 10px -2px #0f14281a, 0 18px 36px -12px #0f14282e;--markup-shadow-pop:0 1px 1px #0000000a, 0 8px 24px -6px #0f14281f, 0 28px 60px -18px #0f142838;--markup-overlay-tint:#1a16140a;--markup-danger:#dc2626;--markup-success:oklch(62% .16 150);--markup-radius:6px;--markup-radius-sm:4px;--markup-font:\"Geist Variable\", \"Geist\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif;--markup-font-mono:\"Geist Mono Variable\", \"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;all:initial;font-family:var(--markup-font);color:var(--markup-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}:host([data-theme=dark]){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}@media (prefers-color-scheme:dark){:host(:not([data-theme])){--markup-paper:#1a1614;--markup-surface:oklch(16% .005 250);--markup-surface-2:oklch(20% .005 250);--markup-surface-3:oklch(24% .005 250);--markup-hover:oklch(24% .005 250);--markup-ink:#fdfcfa;--markup-ink-soft:oklch(80% .005 250);--markup-muted:#a8a39e;--markup-border:#fdfcfa1f;--markup-border-strong:#fdfcfa38;--markup-team:#7b99f0;--markup-accent-soft:color-mix(in srgb, var(--markup-brand) 22%, transparent);--markup-accent-ink:oklch(86% .13 55);--markup-shadow:0 1px 2px #00000059, 0 12px 40px #00000073;--markup-shadow-toolbar:0 1px 0 #ffffff0a inset, 0 1px 2px #0006, 0 12px 30px -10px #0000008c, 0 28px 60px -20px #00000080;--markup-shadow-pop:0 1px 0 #ffffff0a inset, 0 8px 24px -6px #00000073, 0 28px 60px -18px #0000008c;--markup-overlay-tint:#fdfcfa0d;--markup-danger:#f87171}}.markup-sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-shadow-root{font-family:var(--markup-font)}.markup-shadow-root *,.markup-shadow-root :before,.markup-shadow-root :after{box-sizing:border-box}:where(.markup-shadow-root button,.markup-shadow-root input,.markup-shadow-root textarea){font:inherit;color:inherit}.markup-eyebrow{font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--markup-muted);font-size:10px;font-weight:500}.markup-toolbar{z-index:10;background:var(--markup-surface);border:1px solid var(--markup-border);pointer-events:none;height:44px;box-shadow:var(--markup-shadow-toolbar);border-radius:9999px;align-items:center;gap:2px;padding:4px;transition:box-shadow .15s,left .22s cubic-bezier(.2,.7,.2,1),transform .22s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:fixed;bottom:22px;left:100%;transform:translate(calc(-100% - 22px))}.markup-toolbar>*{pointer-events:auto}.markup-tb-btn{width:36px;height:36px;color:var(--markup-ink-soft);cursor:pointer;touch-action:none;font-family:var(--markup-font);background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:500;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative}.markup-tb-btn:hover{background:var(--markup-hover);color:var(--markup-ink)}.markup-tb-btn:active{transform:scale(.97)}.markup-tb-btn:focus-visible{box-shadow:0 0 0 2px var(--markup-surface), 0 0 0 4px var(--markup-accent-glow);outline:none}.markup-tb-btn[data-on=true]{background:var(--markup-ink);color:var(--markup-paper)}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}}:host([data-theme=dark]) .markup-tb-btn[data-on=true]{background:var(--markup-surface-3);color:var(--markup-ink)}.markup-tb-btn[data-armed=true]{background:var(--markup-brand);color:#fff}.markup-tb-btn[data-armed=true]:hover{background:var(--markup-brand-hover);color:#fff}.markup-tb-btn[disabled]{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);cursor:default}.markup-tb-btn[disabled]:hover{color:color-mix(in srgb, var(--markup-muted) 60%, transparent);background:0 0}.markup-tb-btn[data-kind=identity]{gap:6px;width:auto;padding:0 4px}.markup-tb-avatar{background:var(--markup-surface-3);width:28px;height:28px;font-family:var(--markup-font-mono);color:var(--markup-ink);border:1px solid var(--markup-border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-tb-avatar.is-anon{color:var(--markup-muted);background:var(--markup-surface-2)}.markup-tb-sep{background:var(--markup-border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.markup-tb-badge{background:var(--markup-brand);color:#fff;min-width:16px;height:16px;font-family:var(--markup-font-mono);box-shadow:0 0 0 2px var(--markup-surface);pointer-events:none;border-radius:9999px;justify-content:center;align-items:center;padding:0 4px;font-size:9.5px;font-weight:600;line-height:1;transition:transform .15s cubic-bezier(.2,.7,.2,1),opacity .15s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:absolute;top:0;right:0}.markup-tb-badge[data-unread=false]{opacity:0;transform:scale(.5)}.markup-toolbar-left{left:0;transform:translate(22px)}.markup-toolbar-center{left:50%;transform:translate(-50%)}.markup-toolbar-right{left:100%;transform:translate(calc(-100% - 22px))}.markup-pop{background:var(--markup-surface);border:1px solid var(--markup-border);box-shadow:var(--markup-shadow-pop);color:var(--markup-ink);z-index:11;border-radius:12px;font-size:13px;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:absolute;bottom:calc(100% + 8px);overflow:hidden}.markup-pop[data-pop=overflow]{width:260px;padding:6px}.markup-pop[data-pop=identity]{width:240px;padding:6px}.markup-pop[data-pop=inbox]{width:380px;padding:0}.markup-pop.is-anchor-right{right:0}.markup-pop.is-anchor-left{left:0}.markup-pop.is-anchor-center{left:50%;transform:translate(-50%)}@keyframes markup-pop-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.markup-pop.is-anchor-center{animation-name:markup-pop-in-center}@keyframes markup-pop-in-center{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.markup-pop-group-label{font-family:var(--markup-font-mono);letter-spacing:.06em;color:var(--markup-muted);text-transform:lowercase;padding:8px 10px 4px;font-size:10px}.markup-segmented-row{border-radius:6px;align-items:center;gap:10px;padding:7px 8px;display:flex}.markup-segmented-row .lbl{min-width:0;color:var(--markup-ink);flex:1;font-size:13px}.markup-segmented{background:var(--markup-surface-3);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.markup-segmented button{font:inherit;width:28px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:inline-flex}.markup-segmented button:hover{color:var(--markup-ink)}.markup-segmented button.is-on{background:var(--markup-surface);color:var(--markup-ink);box-shadow:0 1px 2px #0000000d}.markup-menu-row{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:7px 8px;font-family:inherit;font-size:13px;display:flex}.markup-menu-row:hover{background:var(--markup-hover)}.markup-menu-row:disabled{opacity:.5;cursor:default}.markup-menu-row:disabled:hover{background:0 0}.markup-menu-row .ic{width:16px;height:16px;color:var(--markup-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.markup-menu-row .lbl{flex-direction:column;flex:1;min-width:0;display:flex}.markup-menu-row .lbl .sub{color:var(--markup-muted);margin-top:1px;font-size:11px}.markup-menu-row .right{font-family:var(--markup-font-mono);color:var(--markup-muted);margin-left:auto;font-size:10.5px}.markup-menu-row.is-danger,.markup-menu-row.is-danger .ic{color:var(--markup-danger)}.markup-menu-row.is-danger:hover{background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-menu-row .switch{background:var(--markup-border-strong);border-radius:9999px;flex-shrink:0;width:26px;height:16px;transition:background .12s;position:relative}.markup-menu-row .switch:after{content:\"\";background:var(--markup-surface);border-radius:9999px;width:12px;height:12px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.markup-menu-row[data-on=true] .switch{background:var(--markup-brand)}.markup-menu-row[data-on=true] .switch:after{left:12px}.markup-menu-divider{background:var(--markup-border);height:1px;margin:4px 0}.markup-brand-line{font-family:var(--markup-font-mono);color:var(--markup-muted);border-top:1px solid var(--markup-border);align-items:center;gap:8px;margin-top:6px;padding:8px 10px;font-size:10.5px;text-decoration:none;display:flex}.markup-brand-line:hover{color:var(--markup-ink)}.markup-brand-line svg{color:var(--markup-brand)}.markup-brand-line .ver{margin-left:auto}.markup-id-who{border-bottom:1px solid var(--markup-border);flex-direction:column;gap:2px;margin-bottom:4px;padding:10px 8px 12px;display:flex}.markup-id-who .nm{color:var(--markup-ink);font-size:13.5px;font-weight:600}.markup-id-who .em{font-family:var(--markup-font-mono);color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.markup-id-anon{text-align:left;flex-direction:column;gap:10px;padding:14px 10px;display:flex}.markup-id-anon .h{letter-spacing:-.005em;color:var(--markup-ink);font-size:14px;font-weight:600}.markup-id-anon .sub{color:var(--markup-muted);font-size:12.5px;line-height:18px}.markup-id-anon button:not(.markup-menu-row){background:var(--markup-ink);width:100%;color:var(--markup-paper);height:32px;font:inherit;cursor:pointer;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.markup-id-anon button:disabled{opacity:.7;cursor:default}.markup-id-anon button:not(.markup-menu-row):hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-surface))}.markup-hud-hidden-toast{z-index:10;background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;animation:.22s ease-out markup-hud-hidden-in,.32s ease-in 4.6s forwards markup-hud-hidden-out;display:inline-flex;position:fixed;bottom:24px}.markup-hud-hidden-toast-right{right:24px}.markup-hud-hidden-toast-left{left:24px}.markup-hud-hidden-toast-center{width:max-content;margin-inline:auto;left:0;right:0}.markup-kbd{background:color-mix(in srgb, var(--markup-paper) 14%, transparent);min-width:18px;height:18px;color:var(--markup-paper);font-family:var(--markup-font);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.markup-kbd.is-inline{background:color-mix(in srgb, var(--markup-ink) 8%, transparent);min-width:14px;height:14px;color:var(--markup-muted);border-radius:3px;padding:0 3px;font-size:9.5px}@keyframes markup-hud-hidden-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes markup-hud-hidden-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.markup-pins-layer{pointer-events:none;position:fixed;inset:0}.markup-pin{border:2px solid var(--markup-paper);background:var(--markup-brand);color:#fff;width:28px;height:28px;font-family:var(--markup-font-mono);cursor:pointer;pointer-events:auto;box-shadow:0 4px 14px -4px #00000059, 0 0 0 1px color-mix(in srgb, var(--markup-brand) 50%, transparent);border-radius:999px 999px 999px 4px;justify-content:center;align-items:center;margin:0;padding:0;font-size:11.5px;font-weight:600;line-height:1;transition:background .15s,color .15s,opacity .15s,top .2s,left .2s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 92%, black)}:host([data-theme=dark]) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}@media (prefers-color-scheme:dark){:host(:not([data-theme])) .markup-pin:hover{background:color-mix(in oklab, var(--markup-brand) 88%, var(--markup-paper))}}.markup-pin.is-active{background:var(--markup-brand);color:#fff;border-color:var(--markup-paper)}.markup-pin.is-anchor{anchor-name:--markup-active-anchor}.markup-pin.is-unresolved{opacity:.6}.markup-pin-ghost{background:var(--markup-brand);color:#fff;cursor:default;pointer-events:none;animation:1.2s ease-in-out infinite markup-ghost-pulse}.markup-pin-num{pointer-events:none;justify-content:center;align-items:center;display:inline-flex}.markup-pin-count{background:var(--markup-ink);min-width:16px;height:16px;color:var(--markup-paper);font-family:var(--markup-font-mono);text-align:center;border:2px solid var(--markup-paper);pointer-events:none;border-radius:999px;padding:0 4px;font-size:9.5px;font-weight:600;line-height:12px;position:absolute;top:-6px;right:-8px}@keyframes markup-ghost-pulse{0%,to{box-shadow:0 4px 14px -4px #00000059,0 0 #e35d2a66}50%{box-shadow:0 4px 14px -4px #00000059,0 0 0 10px #e35d2a00}}.markup-placement-overlay{background:var(--markup-overlay-tint);cursor:crosshair;pointer-events:auto;z-index:1;animation:.18s ease-out markup-overlay-in;position:fixed;inset:0}.markup-placement-cursor-help{background:var(--markup-ink);color:var(--markup-paper);letter-spacing:-.01em;box-shadow:var(--markup-shadow);pointer-events:none;border-radius:999px;padding:10px 16px;font-size:12px;font-weight:500;animation:.22s ease-out 60ms backwards markup-help-in;position:fixed;top:24px;left:50%;transform:translate(-50%)}@keyframes markup-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes markup-help-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.markup-popover{width:360px;max-width:calc(100vw - 24px);height:auto;max-height:calc(100dvh - 24px);inset:auto;left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);background:var(--markup-paper);color:var(--markup-ink);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);box-shadow:var(--markup-shadow);pointer-events:auto;flex-direction:column;gap:0;margin:0;padding:0;animation:.16s ease-out markup-popover-in;display:flex;position:fixed;overflow:hidden}@supports (anchor-name:--x){.markup-popover{position-anchor:--markup-active-anchor;left:calc(anchor(right) + 8px);top:calc(anchor(top) - 9px);position-try-fallbacks:flip-block, flip-inline, flip-block flip-inline;position-try-order:most-block-size}.markup-popover.is-floating{left:var(--markup-pop-x,0);top:var(--markup-pop-y,0);position-try-fallbacks:none}}.markup-popover.is-hud-hidden{display:none}@keyframes markup-popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.markup-popover-header{border-bottom:1px solid var(--markup-border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.markup-popover.is-dragging .markup-popover-header{cursor:grabbing}.markup-popover-header-actions{align-items:center;gap:4px;display:flex}.markup-popover-title{min-width:0;font-family:var(--markup-font-mono);letter-spacing:.02em;color:var(--markup-muted);white-space:nowrap;text-overflow:ellipsis;flex:auto;font-size:11px;line-height:1;overflow:hidden}.markup-thread-menu{display:flex;position:relative}.markup-thread-menu-list{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius);min-width:160px;box-shadow:var(--markup-shadow);padding:4px;animation:.12s ease-out markup-menu-in;position:absolute;top:calc(100% + 6px);right:0}.markup-thread-menu-item{border-radius:var(--markup-radius-sm);width:100%;color:var(--markup-ink);text-align:left;cursor:pointer;background:0 0;border:none;padding:7px 10px;font-size:13px;transition:background .1s,color .1s;display:block}.markup-thread-menu-item:hover{background:var(--markup-border)}.markup-thread-menu-item.is-danger{color:var(--markup-danger,#dc2626)}.markup-thread-menu-item.is-danger:hover{background:color-mix(in srgb, var(--markup-danger,#dc2626) 10%, transparent)}.markup-thread-menu-item:disabled{opacity:.5;cursor:default}@keyframes markup-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.markup-popover-body{border-top:1px solid var(--markup-border);background:var(--markup-paper);flex-direction:column;gap:6px;padding:10px 12px 8px;display:flex}.markup-popover-header+.markup-popover-body{border-top:none}.markup-popover-byline{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.markup-popover-name{color:var(--markup-ink);font-weight:500}.markup-icon-btn{border-radius:var(--markup-radius-sm);width:24px;height:24px;color:var(--markup-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-icon-btn:hover,.markup-icon-btn.is-open{background:var(--markup-border);color:var(--markup-ink)}.markup-icon-btn:active{transform:scale(.97)}.markup-comments{flex-direction:column;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.markup-comment{border-bottom:1px solid var(--markup-border);grid-template-columns:26px 1fr;align-items:start;gap:0 10px;padding:12px;display:grid}.markup-comment:last-child{border-bottom:none}.markup-comment>:not(.markup-comment-avatar){grid-column:2}.markup-comment.is-new{animation:.2s cubic-bezier(.2,.7,.2,1) markup-comment-in}@keyframes markup-comment-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.markup-comment-avatar{background:var(--markup-border);width:26px;height:26px;color:var(--markup-ink);font-family:var(--markup-font-mono);letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:999px;grid-area:1/1/span 4;justify-content:center;align-items:center;margin-top:-3px;font-size:10.5px;font-weight:600;display:inline-flex;overflow:hidden}.markup-avatar-initials{text-box-trim:trim-both;text-box-edge:cap alphabetic;line-height:1}.markup-avatar-img{object-fit:cover;width:100%;height:100%;display:block}.markup-comment-avatar[data-tone=\"1\"]{color:oklch(25% .07 230);background:oklch(85% .07 200)}.markup-comment-avatar[data-tone=\"2\"]{color:oklch(30% .1 150);background:oklch(88% .07 130)}.markup-comment-avatar[data-tone=\"3\"]{color:oklch(35% .1 40);background:oklch(90% .05 50)}.markup-comment-avatar[data-tone=\"4\"]{color:oklch(30% .1 320);background:oklch(87% .07 320)}.markup-comment-avatar[data-tone=\"5\"]{color:oklch(32% .09 70);background:oklch(88% .06 80)}.markup-comment-meta{align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-size:13px;display:flex}.markup-comment-author{color:var(--markup-ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.markup-comment-badge{background:color-mix(in srgb, var(--markup-team) 12%, transparent);height:14px;color:var(--markup-team);font-family:var(--markup-font-mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 5px;font-size:9px;font-weight:500;line-height:1;display:inline-flex}.markup-comment-badge.is-agent{background:color-mix(in srgb, var(--markup-brand) 14%, transparent);color:var(--markup-brand);letter-spacing:normal;justify-content:center;width:14px;padding:0}.markup-comment-time{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-size:10.5px}.markup-comment-body{color:var(--markup-ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:19px}.markup-comment-edited{color:var(--markup-muted);font-family:var(--markup-font-mono);margin-left:2px;font-size:10.5px}.markup-comment-edited:before{content:\" · \"}.markup-thread-actions{align-items:center;gap:4px;display:flex}.markup-comment-meta .markup-reaction-picker-wrap,.markup-thread-actions{margin-left:auto}.markup-comment-meta .markup-reaction-add{width:22px;height:22px;margin-top:-4px;margin-bottom:-4px}.markup-reaction-picker-wrap>.markup-icon-btn,.markup-comment-menu>.markup-icon-btn{margin-top:-4px;margin-bottom:-4px}.markup-comment-menu.is-up .markup-thread-menu-list{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-comment-menu.is-side .markup-thread-menu-list{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}@keyframes markup-menu-in-side{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}@keyframes markup-menu-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.markup-comment{position:relative}.markup-reactions{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.markup-reaction-chip{border:1px solid var(--markup-border);background:var(--markup-surface-3);color:var(--markup-ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.markup-reaction-chip:hover:not(:disabled){background:var(--markup-hover)}.markup-reaction-chip.is-mine{background:var(--markup-accent-soft);border-color:color-mix(in srgb, var(--markup-brand) 50%, transparent);color:var(--markup-accent-ink)}.markup-reaction-chip.is-mine:hover:not(:disabled){background:color-mix(in srgb, var(--markup-brand) 18%, transparent)}.markup-reaction-chip:disabled{cursor:default;opacity:.6}.markup-reaction-emoji{font-size:13px;line-height:1}.markup-reaction-count{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);font-size:10.5px}.markup-reaction-chip.is-mine .markup-reaction-count{color:var(--markup-accent-ink)}.markup-reaction-picker-wrap{opacity:0;flex:none;transition:opacity .12s;display:inline-flex;position:relative}.markup-comment:hover .markup-reaction-picker-wrap,.markup-comment:focus-within .markup-reaction-picker-wrap,.markup-reaction-picker-wrap.is-open{opacity:1}.markup-reaction-add{width:22px;height:22px;color:var(--markup-muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.markup-reaction-add:hover,.markup-reaction-add.is-open{background:var(--markup-hover);color:var(--markup-ink)}.markup-reaction-picker{z-index:1;border:1px solid var(--markup-border-strong);background:var(--markup-paper);border-radius:8px;gap:2px;padding:4px;animation:.12s markup-menu-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 1px 2px #1a16140f,0 8px 28px #1a16141a}.markup-reaction-picker-wrap.is-up .markup-reaction-picker{animation-name:markup-menu-in-up;top:auto;bottom:calc(100% + 6px)}.markup-reaction-picker-wrap.is-side .markup-reaction-picker{animation-name:markup-menu-in-side;top:-4px;right:calc(100% + 2px)}.markup-reaction-picker-item{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s;display:inline-flex}.markup-reaction-picker-item:hover{background:color-mix(in srgb, var(--markup-ink) 8%, transparent)}.markup-reaction-picker-item.is-mine{background:color-mix(in srgb, var(--markup-brand) 14%, transparent)}.markup-comment-edit-form{flex-direction:column;gap:6px;display:flex}.markup-comment-edit-actions{justify-content:flex-end;gap:6px;display:flex}.markup-composer{flex-direction:column;display:flex;position:relative}.markup-composer-input{width:100%;min-height:38px;max-height:120px;color:var(--markup-ink);font-family:var(--markup-font);background:0 0;border:none;border-radius:0;padding:2px 0;font-size:13.5px;line-height:19px;transition:none;overflow-y:auto}.markup-composer-input:focus-visible{box-shadow:none;outline:none}.markup-composer-footer-wrap{grid-template-rows:0fr;transition:grid-template-rows .15s;display:grid}.markup-composer.is-filled .markup-composer-footer-wrap{grid-template-rows:1fr}.markup-composer-footer{opacity:0;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;padding:0;transition:opacity .1s;display:flex;overflow:hidden}.markup-composer.is-filled .markup-composer-footer{opacity:1;transition-delay:60ms}.markup-composer-hint{font-family:var(--markup-font-mono);letter-spacing:.04em;color:var(--markup-muted);align-items:center;gap:3px;font-size:10.5px;display:inline-flex}.markup-composer-hint-label{margin-left:2px}.markup-composer-error{color:var(--markup-brand)}.markup-composer-actions{align-items:center;gap:6px;display:flex}.markup-composer .markup-btn-primary{background:var(--markup-ink);height:26px;color:var(--markup-paper);border-radius:6px;padding:0 10px}.markup-composer .markup-btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--markup-ink) 88%, var(--markup-paper))}.markup-composer-actions-empty{transition:opacity .12s;position:absolute;bottom:0;right:0}.markup-composer.is-filled .markup-composer-actions-empty{opacity:0;pointer-events:none}.markup-author-prompt{flex-direction:column;gap:10px;padding:12px;display:flex}.markup-author-status{color:var(--markup-muted);margin:0;font-size:12px}.markup-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;height:36px;color:var(--markup-ink);outline:none;padding:0 10px;font-size:14px;transition:border-color .12s,box-shadow .12s}.markup-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-btn{border-radius:var(--markup-radius-sm);height:30px;color:var(--markup-ink);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s,transform .12s cubic-bezier(.2,.7,.2,1);display:inline-flex}.markup-btn:disabled{opacity:.5;cursor:not-allowed}.markup-btn:active:not(:disabled){transform:scale(.97)}.markup-btn-primary{background:var(--markup-ink);color:var(--markup-paper)}.markup-btn-primary:hover:not(:disabled){background:var(--markup-brand)}.markup-btn-ghost{color:var(--markup-muted)}.markup-btn-ghost:hover:not(:disabled){background:var(--markup-border);color:var(--markup-ink)}.markup-btn-danger{color:var(--markup-danger)}.markup-btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-discard-confirm{background:color-mix(in srgb, var(--markup-paper) 92%, transparent);-webkit-backdrop-filter:blur(6px);flex-direction:column;justify-content:center;gap:4px;padding:16px;animation:.12s ease-out markup-menu-in;display:flex;position:absolute;inset:0}.markup-discard-confirm-title{color:var(--markup-ink);margin:0;font-size:13px;font-weight:600}.markup-discard-confirm-desc{color:var(--markup-muted);margin:0;font-size:12px}.markup-discard-confirm-actions{gap:6px;margin-top:10px;display:flex}.markup-screenshot-row{border:1px dashed var(--markup-border-strong);color:var(--markup-muted);border-radius:6px;flex-direction:column;gap:8px;margin-top:0;padding:6px 8px;font-size:11.5px;display:flex}.markup-screenshot-row.is-attached{border-style:solid;border-color:var(--markup-border);padding:8px}.markup-screenshot-row-head{justify-content:space-between;align-items:center;gap:8px;min-height:16px;display:flex}.markup-screenshot-status{color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;display:flex}.markup-screenshot-row.is-failed{opacity:.85;border-style:dotted}.markup-screenshot-toggle{cursor:pointer;color:var(--markup-muted);font-family:var(--markup-font-mono);letter-spacing:.04em;align-items:center;gap:5px;font-size:11px;transition:color .12s;display:flex}.markup-screenshot-toggle:hover{color:var(--markup-ink)}.markup-screenshot-checkbox{width:12px;height:12px;accent-color:var(--markup-brand);cursor:pointer;margin:0}.markup-screenshot-thumb{border:1px solid var(--markup-border-strong);object-fit:cover;object-position:top;border-radius:3px;width:auto;height:22px;margin:-4px 0 -4px 4px;display:block}.markup-screenshot-redacted-chip{background:color-mix(in srgb, var(--markup-success,oklch(62% .16 150)) 16%, transparent);color:var(--markup-success,oklch(62% .16 150));font-family:var(--markup-font-mono);white-space:nowrap;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;display:inline-flex}.markup-screenshot-redacted-chip:hover{filter:brightness(1.05)}.markup-screenshot-redacted-arrow{font-style:normal}.markup-screenshot-redacted-list{flex-direction:column;gap:2px;display:flex}.markup-screenshot-redacted-selector{font-family:var(--markup-font-mono);color:var(--markup-muted);font-size:9px;display:block}.markup-screenshot-help{font-family:var(--markup-font-mono);color:var(--markup-muted);margin:0;font-size:10px;line-height:1.5}.markup-screenshot-help-link{color:var(--markup-ink);text-underline-offset:2px;text-decoration:underline}.markup-screenshot-help-link:hover{color:var(--markup-brand)}.markup-comment-screenshot{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);cursor:pointer;background:0 0;margin-top:8px;padding:0;transition:border-color .12s,opacity .12s;display:block;overflow:hidden}.markup-comment-screenshot:hover{border-color:var(--markup-brand);opacity:.9}.markup-comment-screenshot img{object-fit:cover;object-position:top;width:100%;height:auto;max-height:120px;display:block}.markup-lightbox{background:#1a1614e0;border:none;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:24px;position:fixed;inset:0}.markup-lightbox[open]{justify-content:center;align-items:center;display:flex}.markup-lightbox::backdrop{display:none}.markup-lightbox-img{border-radius:var(--markup-radius);object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--markup-shadow);animation:.16s ease-out markup-lightbox-in}.markup-lightbox-close{color:#fdfcfa;background:#1a161499;position:absolute;top:16px;right:16px}.markup-lightbox-close:hover{color:#fdfcfa;background:#1a1614d9}@keyframes markup-lightbox-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.markup-toolbar,.markup-tb-btn,.markup-tb-badge,.markup-comment,.markup-pin,.markup-icon-btn,.markup-btn,.markup-popover,.markup-pin-ghost,.markup-placement-overlay,.markup-placement-cursor-help,.markup-lightbox-img{transition:none;animation:none}}.markup-mention-chip{background:var(--markup-accent-soft);color:var(--markup-accent-ink);border-radius:3px;padding:0 2px;font-weight:500;display:inline-block}.markup-mention-input{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;outline:none;position:relative}.markup-mention-input[aria-disabled=true]{opacity:.6;cursor:default}.markup-mention-input[data-empty]:before{content:attr(data-placeholder);color:var(--markup-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.markup-mention-input .markup-mention-chip{white-space:nowrap;padding:0 3px}.markup-comment-edit-input{border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);background:var(--markup-paper);width:100%;min-height:58px;max-height:200px;color:var(--markup-ink);font:inherit;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.markup-comment-edit-input:focus-visible{border-color:var(--markup-brand);box-shadow:0 0 0 3px #e35d2a2e}.markup-comment-edit-input[data-empty]:before{inset:8px auto auto 10px}.markup-mention-picker{z-index:10;background:var(--markup-paper);border:1px solid var(--markup-border-strong);border-radius:var(--markup-radius-sm);max-height:180px;box-shadow:var(--markup-shadow);margin:0 0 4px;padding:4px;list-style:none;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}.markup-mention-picker-item{border-radius:var(--markup-radius-sm);cursor:pointer;color:var(--markup-ink);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.markup-mention-picker-item.is-active{background:color-mix(in srgb, var(--markup-brand) 12%, transparent)}.markup-mention-picker-name{font-weight:500}.markup-mention-picker-trigger{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel{max-height:min(60vh,420px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-notifications-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:8px 10px;display:flex}.markup-notifications-panel-header .markup-eyebrow{flex:1}.markup-notifications-panel-actions{align-items:center;gap:8px;display:flex}.markup-notifications-panel-mark-all{color:var(--markup-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px}.markup-notifications-panel-mark-all:hover{color:var(--markup-ink)}.markup-notifications-panel-body{flex:1;overflow-y:auto}.markup-notifications-panel-empty,.markup-notifications-panel-error{text-align:center;color:var(--markup-muted);padding:24px 12px;font-size:12px}.markup-notifications-panel-empty-title{color:var(--markup-ink);margin:0 0 4px;font-weight:500}.markup-notifications-panel-empty-sub{color:var(--markup-muted);margin:0;line-height:1.4}.markup-notifications-panel-error{color:var(--markup-danger,#b91c1c)}.markup-notifications-panel-list{margin:0;padding:4px;list-style:none}.markup-notifications-panel-row{border-radius:var(--markup-radius-sm);text-align:start;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.markup-notifications-panel-row:hover{background:color-mix(in srgb, var(--markup-brand) 8%, transparent)}.markup-notifications-panel-row.is-unread{background:color-mix(in srgb, var(--markup-brand) 5%, transparent)}.markup-notifications-panel-meta{align-items:center;gap:6px;font-size:11px;display:flex}.markup-notifications-panel-dot{background:var(--markup-brand);border-radius:999px;flex-shrink:0;width:6px;height:6px}.markup-notifications-panel-actor{font-weight:600}.markup-notifications-panel-sep{color:var(--markup-muted)}.markup-notifications-panel-time{color:var(--markup-muted);font-family:var(--markup-font-mono);font-size:10px}.markup-notifications-panel-thread{color:var(--markup-muted);margin:0;font-size:12px}.markup-notifications-panel-thread-title{color:var(--markup-ink)}.markup-notifications-panel-excerpt{color:color-mix(in srgb, var(--markup-ink) 80%, transparent);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;font-style:italic;display:-webkit-box;overflow:hidden}.markup-panel-pop{z-index:11;pointer-events:auto;width:380px;max-width:calc(100vw - 24px);position:fixed;bottom:76px}.markup-panel-pop[data-panel=privacy]{width:340px}.markup-panel-pop[data-panel=shortcuts]{width:320px}.markup-panel-pop-right{right:22px}.markup-panel-pop-left{left:22px}.markup-panel-pop-center{left:50%;transform:translate(-50%)}.markup-panel-pop .markup-pop{width:100%;animation:.14s cubic-bezier(.2,.7,.2,1) markup-pop-in;position:static}.markup-panel-pop .markup-notifications-panel{max-height:min(60vh,480px)}.markup-panel-pop .markup-notifications-panel-header{padding:12px 14px}.markup-panel-pop .markup-notifications-panel-header .markup-icon-btn{display:none}.markup-pop[data-pop=privacy],.markup-pop[data-pop=shortcuts]{padding:0}.markup-panel{max-height:min(70vh,520px);color:var(--markup-ink);flex-direction:column;display:flex}.markup-panel-header{border-bottom:1px solid var(--markup-border);align-items:center;gap:8px;padding:12px 14px;display:flex}.markup-panel-header .markup-eyebrow{flex:1}.markup-panel-body{flex:1;padding:4px 14px 14px;overflow-y:auto}.markup-panel-section{border-bottom:1px solid var(--markup-border);padding:10px 0}.markup-panel-section:last-child{border-bottom:none;padding-bottom:2px}.markup-panel-section-title{font-family:var(--markup-font-mono);letter-spacing:.06em;text-transform:lowercase;color:var(--markup-muted);margin:0 0 6px;font-size:10px;font-weight:400}.markup-panel-text{color:var(--markup-ink-soft);margin:0;font-size:12.5px;line-height:1.5}.markup-panel-text strong{color:var(--markup-ink);font-weight:600}.markup-panel-mono{font-family:var(--markup-font-mono);color:var(--markup-ink);word-break:break-all;font-size:11.5px}.markup-panel-list{color:var(--markup-ink-soft);margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}.markup-panel-list li{margin-bottom:3px}.markup-panel-list li::marker{color:var(--markup-muted)}.markup-panel-note{color:var(--markup-muted);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-error{color:var(--markup-danger);margin:8px 0 0;font-size:11.5px;line-height:1.45}.markup-panel-action{border:1px solid var(--markup-border-strong);width:100%;height:30px;color:var(--markup-ink);font:inherit;cursor:pointer;background:0 0;border-radius:7px;margin-top:10px;padding:0 10px;font-size:12.5px;transition:background .12s,border-color .12s,color .12s}.markup-panel-action:hover:not(:disabled){background:var(--markup-hover)}.markup-panel-action:disabled{opacity:.6;cursor:default}.markup-panel-action.is-danger{border-color:color-mix(in srgb, var(--markup-danger) 45%, transparent);color:var(--markup-danger)}.markup-panel-action.is-danger:hover:not(:disabled){background:color-mix(in srgb, var(--markup-danger) 10%, transparent)}.markup-shortcut-list{margin:0;padding:0;list-style:none}.markup-shortcut-row{align-items:center;gap:10px;min-height:24px;padding:2px 0;display:flex}.markup-shortcut-label{min-width:0;color:var(--markup-ink-soft);flex:1;font-size:12.5px;line-height:1.4}.markup-shortcut-keys{flex-shrink:0;align-items:center;gap:4px;display:inline-flex}.markup-shortcut-chord{align-items:center;gap:3px;display:inline-flex}.markup-shortcut-or{color:var(--markup-muted);margin-right:1px;font-size:10px}", pe = 1e4, N = 20, me = 60, he = null, ge = [], P = null, _e = !1, ve = ye();
|
|
252
252
|
function ye() {
|
|
253
253
|
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `s-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
254
254
|
}
|
|
@@ -2983,7 +2983,7 @@ function* _i(e, t, n, r, i) {
|
|
|
2983
2983
|
//#endregion
|
|
2984
2984
|
//#region src/runtime/anchor.ts
|
|
2985
2985
|
function vi(e, t) {
|
|
2986
|
-
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ?
|
|
2986
|
+
let n = document.documentElement, r = Math.max(n.scrollWidth, n.clientWidth), i = Math.max(n.scrollHeight, n.clientHeight), a = e.clientX + window.scrollX, o = e.clientY + window.scrollY, s = t === void 0 ? e.target instanceof Element ? e.target : null : t, c = s ? wi(s) : void 0, l, u;
|
|
2987
2987
|
if (s) {
|
|
2988
2988
|
let t = s.getBoundingClientRect();
|
|
2989
2989
|
t.width > 0 && t.height > 0 && (l = Math.max(0, Math.min(1, (e.clientX - t.left) / t.width)), u = Math.max(0, Math.min(1, (e.clientY - t.top) / t.height)));
|
|
@@ -3001,7 +3001,7 @@ function vi(e, t) {
|
|
|
3001
3001
|
function yi(e) {
|
|
3002
3002
|
if (e.anchorSelector) try {
|
|
3003
3003
|
let t = document.querySelector(e.anchorSelector), n = t?.getBoundingClientRect();
|
|
3004
|
-
if (t && n &&
|
|
3004
|
+
if (t && n && Ci(n)) return {
|
|
3005
3005
|
pageX: n.left + window.scrollX + (e.anchorOffsetX ?? .5) * n.width,
|
|
3006
3006
|
pageY: n.top + window.scrollY + (e.anchorOffsetY ?? .5) * n.height,
|
|
3007
3007
|
resolved: !0,
|
|
@@ -3016,10 +3016,58 @@ function yi(e) {
|
|
|
3016
3016
|
element: null
|
|
3017
3017
|
};
|
|
3018
3018
|
}
|
|
3019
|
-
function bi(e) {
|
|
3020
|
-
|
|
3019
|
+
function bi(e, t) {
|
|
3020
|
+
let n = window.innerWidth, r = t && t.viewportW === n ? t : void 0, i = yi(e);
|
|
3021
|
+
if (i.resolved && i.element) {
|
|
3022
|
+
let e = i.element.getBoundingClientRect(), t = {
|
|
3023
|
+
width: e.width,
|
|
3024
|
+
height: e.height
|
|
3025
|
+
};
|
|
3026
|
+
return r && r.element !== i.element && Si(i, t, r) ? {
|
|
3027
|
+
point: xi(r),
|
|
3028
|
+
memory: r
|
|
3029
|
+
} : {
|
|
3030
|
+
point: i,
|
|
3031
|
+
memory: {
|
|
3032
|
+
pageX: i.pageX,
|
|
3033
|
+
pageY: i.pageY,
|
|
3034
|
+
size: t,
|
|
3035
|
+
element: i.element,
|
|
3036
|
+
viewportW: n
|
|
3037
|
+
}
|
|
3038
|
+
};
|
|
3039
|
+
}
|
|
3040
|
+
return r ? {
|
|
3041
|
+
point: xi(r),
|
|
3042
|
+
memory: r
|
|
3043
|
+
} : {
|
|
3044
|
+
point: i,
|
|
3045
|
+
memory: {
|
|
3046
|
+
pageX: i.pageX,
|
|
3047
|
+
pageY: i.pageY,
|
|
3048
|
+
size: null,
|
|
3049
|
+
element: null,
|
|
3050
|
+
viewportW: n
|
|
3051
|
+
}
|
|
3052
|
+
};
|
|
3021
3053
|
}
|
|
3022
3054
|
function xi(e) {
|
|
3055
|
+
return {
|
|
3056
|
+
pageX: e.pageX,
|
|
3057
|
+
pageY: e.pageY,
|
|
3058
|
+
resolved: !1,
|
|
3059
|
+
element: null
|
|
3060
|
+
};
|
|
3061
|
+
}
|
|
3062
|
+
function Si(e, t, n) {
|
|
3063
|
+
if (!n.size) return !1;
|
|
3064
|
+
let r = (e, t) => e === 0 || t === 0 ? +(e === t) : e / t, i = r(t.width, n.size.width), a = r(t.height, n.size.height), o = i < .5 || i > 2 || a < .5 || a > 2, s = Math.hypot(e.pageX - n.pageX, e.pageY - n.pageY) > window.innerHeight;
|
|
3065
|
+
return o || s;
|
|
3066
|
+
}
|
|
3067
|
+
function Ci(e) {
|
|
3068
|
+
return e.width !== 0 || e.height !== 0 || e.top !== 0 || e.left !== 0;
|
|
3069
|
+
}
|
|
3070
|
+
function wi(e) {
|
|
3023
3071
|
try {
|
|
3024
3072
|
return ri(e, { timeoutMs: 1e3 });
|
|
3025
3073
|
} catch {
|
|
@@ -3028,22 +3076,22 @@ function xi(e) {
|
|
|
3028
3076
|
}
|
|
3029
3077
|
//#endregion
|
|
3030
3078
|
//#region src/runtime/api.ts
|
|
3031
|
-
var
|
|
3079
|
+
var Ti = class extends Error {
|
|
3032
3080
|
status;
|
|
3033
3081
|
constructor(e, t) {
|
|
3034
3082
|
super(e), this.name = "WidgetApiError", this.status = t;
|
|
3035
3083
|
}
|
|
3036
|
-
},
|
|
3084
|
+
}, Ei = class extends Ti {
|
|
3037
3085
|
category;
|
|
3038
3086
|
constructor(e, t) {
|
|
3039
3087
|
super(`${e} took too long, so check your connection`, 0), this.name = "WidgetTimeoutError", this.category = t;
|
|
3040
3088
|
}
|
|
3041
|
-
},
|
|
3042
|
-
function
|
|
3089
|
+
}, Di = 15e3, J = 3e4;
|
|
3090
|
+
function Oi(e, t) {
|
|
3043
3091
|
let n = AbortSignal.timeout(e);
|
|
3044
3092
|
return t ? AbortSignal.any([t, n]) : n;
|
|
3045
3093
|
}
|
|
3046
|
-
function
|
|
3094
|
+
function ki(e) {
|
|
3047
3095
|
let t = e.apiUrl.replace(/\/+$/, "");
|
|
3048
3096
|
async function n(n, r, i) {
|
|
3049
3097
|
let a = {
|
|
@@ -3057,23 +3105,23 @@ function Ei(e) {
|
|
|
3057
3105
|
let l = e.getStorageMode?.() === "cookies", u = {
|
|
3058
3106
|
...r,
|
|
3059
3107
|
headers: a,
|
|
3060
|
-
signal:
|
|
3108
|
+
signal: Oi(i.timeoutMs, i.signal)
|
|
3061
3109
|
};
|
|
3062
3110
|
l && (u.credentials = "include");
|
|
3063
3111
|
let d;
|
|
3064
3112
|
try {
|
|
3065
3113
|
d = await fetch(`${t}${n}`, u);
|
|
3066
3114
|
} catch (e) {
|
|
3067
|
-
throw e instanceof DOMException && e.name === "TimeoutError" ? new
|
|
3115
|
+
throw e instanceof DOMException && e.name === "TimeoutError" ? new Ei(i.operation, i.category) : e;
|
|
3068
3116
|
}
|
|
3069
|
-
let f = await d.text(), p = f ?
|
|
3070
|
-
if (!d.ok) throw d.status === 401 && (s || l) && e.onUnauthorized?.(), new
|
|
3117
|
+
let f = await d.text(), p = f ? Ai(f) : null;
|
|
3118
|
+
if (!d.ok) throw d.status === 401 && (s || l) && e.onUnauthorized?.(), new Ti((p && typeof p == "object" && "error" in p && typeof p.error == "string" ? p.error : null) ?? `Request failed with ${d.status}`, d.status);
|
|
3071
3119
|
return p;
|
|
3072
3120
|
}
|
|
3073
3121
|
return {
|
|
3074
3122
|
mintAnonIdentity(e) {
|
|
3075
3123
|
return n("/widget/anon-identity", { method: "POST" }, {
|
|
3076
|
-
timeoutMs:
|
|
3124
|
+
timeoutMs: Di,
|
|
3077
3125
|
category: "read",
|
|
3078
3126
|
operation: "mint-anon-identity",
|
|
3079
3127
|
signal: e?.signal
|
|
@@ -3081,7 +3129,7 @@ function Ei(e) {
|
|
|
3081
3129
|
},
|
|
3082
3130
|
getSubscriptionToken(e) {
|
|
3083
3131
|
return n("/widget/subscription-token", { method: "POST" }, {
|
|
3084
|
-
timeoutMs:
|
|
3132
|
+
timeoutMs: Di,
|
|
3085
3133
|
category: "read",
|
|
3086
3134
|
operation: "mint-subscription-token",
|
|
3087
3135
|
signal: e?.signal
|
|
@@ -3089,7 +3137,7 @@ function Ei(e) {
|
|
|
3089
3137
|
},
|
|
3090
3138
|
getScreenshotUploadUrl(e) {
|
|
3091
3139
|
return n("/widget/screenshots/upload-url", { method: "POST" }, {
|
|
3092
|
-
timeoutMs:
|
|
3140
|
+
timeoutMs: Di,
|
|
3093
3141
|
category: "read",
|
|
3094
3142
|
operation: "mint-screenshot-upload-url",
|
|
3095
3143
|
signal: e?.signal
|
|
@@ -3097,7 +3145,7 @@ function Ei(e) {
|
|
|
3097
3145
|
},
|
|
3098
3146
|
listThreads(e, t) {
|
|
3099
3147
|
return n(`/widget/threads?route=${encodeURIComponent(e)}`, { method: "GET" }, {
|
|
3100
|
-
timeoutMs:
|
|
3148
|
+
timeoutMs: Di,
|
|
3101
3149
|
category: "read",
|
|
3102
3150
|
operation: "list-threads",
|
|
3103
3151
|
signal: t?.signal
|
|
@@ -3105,7 +3153,7 @@ function Ei(e) {
|
|
|
3105
3153
|
},
|
|
3106
3154
|
listMembers(e) {
|
|
3107
3155
|
return n("/widget/members", { method: "GET" }, {
|
|
3108
|
-
timeoutMs:
|
|
3156
|
+
timeoutMs: Di,
|
|
3109
3157
|
category: "read",
|
|
3110
3158
|
operation: "list-members",
|
|
3111
3159
|
signal: e?.signal
|
|
@@ -3113,7 +3161,7 @@ function Ei(e) {
|
|
|
3113
3161
|
},
|
|
3114
3162
|
listNotifications(e) {
|
|
3115
3163
|
return n("/widget/notifications", { method: "GET" }, {
|
|
3116
|
-
timeoutMs:
|
|
3164
|
+
timeoutMs: Di,
|
|
3117
3165
|
category: "read",
|
|
3118
3166
|
operation: "list-notifications",
|
|
3119
3167
|
signal: e?.signal
|
|
@@ -3224,7 +3272,7 @@ function Ei(e) {
|
|
|
3224
3272
|
}
|
|
3225
3273
|
};
|
|
3226
3274
|
}
|
|
3227
|
-
function
|
|
3275
|
+
function Ai(e) {
|
|
3228
3276
|
try {
|
|
3229
3277
|
return JSON.parse(e);
|
|
3230
3278
|
} catch {
|
|
@@ -3233,10 +3281,10 @@ function Di(e) {
|
|
|
3233
3281
|
}
|
|
3234
3282
|
//#endregion
|
|
3235
3283
|
//#region src/runtime/cookie-probe.ts
|
|
3236
|
-
var
|
|
3237
|
-
async function
|
|
3284
|
+
var ji = "markup.cookieProbe";
|
|
3285
|
+
async function Mi(e, t) {
|
|
3238
3286
|
try {
|
|
3239
|
-
let e = sessionStorage.getItem(
|
|
3287
|
+
let e = sessionStorage.getItem(ji);
|
|
3240
3288
|
if (e === "supported") return !0;
|
|
3241
3289
|
if (e === "unsupported") return !1;
|
|
3242
3290
|
} catch {}
|
|
@@ -3246,18 +3294,18 @@ async function ki(e, t) {
|
|
|
3246
3294
|
method: "POST",
|
|
3247
3295
|
credentials: "include",
|
|
3248
3296
|
headers: r,
|
|
3249
|
-
signal:
|
|
3297
|
+
signal: Oi(15e3)
|
|
3250
3298
|
})).ok) return !1;
|
|
3251
3299
|
let e = await fetch(`${n}/widget/auth/probe-check`, {
|
|
3252
3300
|
method: "POST",
|
|
3253
3301
|
credentials: "include",
|
|
3254
3302
|
headers: r,
|
|
3255
|
-
signal:
|
|
3303
|
+
signal: Oi(Di)
|
|
3256
3304
|
});
|
|
3257
3305
|
if (!e.ok) return !1;
|
|
3258
3306
|
let { supported: t } = await e.json(), i = t === !0;
|
|
3259
3307
|
try {
|
|
3260
|
-
sessionStorage.setItem(
|
|
3308
|
+
sessionStorage.setItem(ji, i ? "supported" : "unsupported");
|
|
3261
3309
|
} catch {}
|
|
3262
3310
|
return i;
|
|
3263
3311
|
} catch (e) {
|
|
@@ -3267,8 +3315,8 @@ async function ki(e, t) {
|
|
|
3267
3315
|
}
|
|
3268
3316
|
//#endregion
|
|
3269
3317
|
//#region src/runtime/history-observer.ts
|
|
3270
|
-
var
|
|
3271
|
-
function
|
|
3318
|
+
var Ni = "__markup_history_observer__", Pi = "__markup_history_listeners__";
|
|
3319
|
+
function Fi(e) {
|
|
3272
3320
|
e.forEach((e) => {
|
|
3273
3321
|
try {
|
|
3274
3322
|
e();
|
|
@@ -3277,75 +3325,75 @@ function Mi(e) {
|
|
|
3277
3325
|
}
|
|
3278
3326
|
});
|
|
3279
3327
|
}
|
|
3280
|
-
var
|
|
3281
|
-
function
|
|
3328
|
+
var Ii = "__markup_history_restore__";
|
|
3329
|
+
function Li() {
|
|
3282
3330
|
let e = history.pushState;
|
|
3283
|
-
if (e[
|
|
3284
|
-
listeners: e[
|
|
3285
|
-
restore: e[
|
|
3331
|
+
if (e[Ni]) return {
|
|
3332
|
+
listeners: e[Pi],
|
|
3333
|
+
restore: e[Ii]
|
|
3286
3334
|
};
|
|
3287
3335
|
let t = /* @__PURE__ */ new Set(), n = history.pushState, r = history.replaceState;
|
|
3288
3336
|
function i(...e) {
|
|
3289
|
-
n.apply(this, e),
|
|
3337
|
+
n.apply(this, e), Fi(t);
|
|
3290
3338
|
}
|
|
3291
3339
|
function a(...e) {
|
|
3292
|
-
r.apply(this, e),
|
|
3340
|
+
r.apply(this, e), Fi(t);
|
|
3293
3341
|
}
|
|
3294
|
-
let o = () =>
|
|
3342
|
+
let o = () => Fi(t), s = () => {
|
|
3295
3343
|
history.pushState === i && (history.pushState = n), history.replaceState === a && (history.replaceState = r), window.removeEventListener("popstate", o), t.clear();
|
|
3296
3344
|
};
|
|
3297
|
-
return Object.defineProperty(i,
|
|
3345
|
+
return Object.defineProperty(i, Ni, { value: 1 }), Object.defineProperty(i, Pi, { value: t }), Object.defineProperty(i, Ii, { value: s }), Object.defineProperty(a, Ni, { value: 1 }), history.pushState = i, history.replaceState = a, window.addEventListener("popstate", o), {
|
|
3298
3346
|
listeners: t,
|
|
3299
3347
|
restore: s
|
|
3300
3348
|
};
|
|
3301
3349
|
}
|
|
3302
|
-
var
|
|
3303
|
-
function
|
|
3304
|
-
|
|
3305
|
-
let t =
|
|
3350
|
+
var Ri = null;
|
|
3351
|
+
function zi(e) {
|
|
3352
|
+
Ri ||= Li();
|
|
3353
|
+
let t = Ri;
|
|
3306
3354
|
t.listeners.add(e);
|
|
3307
3355
|
let n = !1;
|
|
3308
3356
|
return () => {
|
|
3309
|
-
n || (n = !0, t.listeners.delete(e), t.listeners.size === 0 && (t.restore(),
|
|
3357
|
+
n || (n = !0, t.listeners.delete(e), t.listeners.size === 0 && (t.restore(), Ri === t && (Ri = null)));
|
|
3310
3358
|
};
|
|
3311
3359
|
}
|
|
3312
3360
|
//#endregion
|
|
3313
3361
|
//#region src/runtime/safe-url.ts
|
|
3314
|
-
var
|
|
3315
|
-
function
|
|
3362
|
+
var Bi = /* @__PURE__ */ new Set(["http:", "https:"]);
|
|
3363
|
+
function Vi(e, t) {
|
|
3316
3364
|
let n;
|
|
3317
3365
|
try {
|
|
3318
3366
|
n = new URL(e, t);
|
|
3319
3367
|
} catch {
|
|
3320
3368
|
return null;
|
|
3321
3369
|
}
|
|
3322
|
-
return
|
|
3370
|
+
return Bi.has(n.protocol) ? n : null;
|
|
3323
3371
|
}
|
|
3324
3372
|
//#endregion
|
|
3325
3373
|
//#region src/runtime/identity-store.ts
|
|
3326
|
-
var
|
|
3327
|
-
function
|
|
3374
|
+
var Hi = "markup.identity";
|
|
3375
|
+
function Ui() {
|
|
3328
3376
|
try {
|
|
3329
|
-
let e = localStorage.getItem(
|
|
3377
|
+
let e = localStorage.getItem(Hi);
|
|
3330
3378
|
return e ? JSON.parse(e) : null;
|
|
3331
3379
|
} catch {
|
|
3332
3380
|
return null;
|
|
3333
3381
|
}
|
|
3334
3382
|
}
|
|
3335
|
-
function
|
|
3336
|
-
if (typeof e.image == "string") return
|
|
3383
|
+
function Wi(e) {
|
|
3384
|
+
if (typeof e.image == "string") return Vi(e.image, location.href)?.href ?? void 0;
|
|
3337
3385
|
}
|
|
3338
|
-
function
|
|
3386
|
+
function Gi(e) {
|
|
3339
3387
|
try {
|
|
3340
3388
|
if (e == null) {
|
|
3341
|
-
localStorage.removeItem(
|
|
3389
|
+
localStorage.removeItem(Hi);
|
|
3342
3390
|
return;
|
|
3343
3391
|
}
|
|
3344
|
-
localStorage.setItem(
|
|
3392
|
+
localStorage.setItem(Hi, JSON.stringify(e));
|
|
3345
3393
|
} catch {}
|
|
3346
3394
|
}
|
|
3347
|
-
function
|
|
3348
|
-
let e =
|
|
3395
|
+
function Ki() {
|
|
3396
|
+
let e = Ui(), t = {
|
|
3349
3397
|
name: e?.name,
|
|
3350
3398
|
email: e?.email
|
|
3351
3399
|
};
|
|
@@ -3364,7 +3412,7 @@ function Ui() {
|
|
|
3364
3412
|
refreshTokenExpiresAt: e.refreshTokenExpiresAt,
|
|
3365
3413
|
name: e.name,
|
|
3366
3414
|
email: e.email,
|
|
3367
|
-
image:
|
|
3415
|
+
image: Wi(e)
|
|
3368
3416
|
}
|
|
3369
3417
|
},
|
|
3370
3418
|
preserved: t
|
|
@@ -3385,7 +3433,7 @@ function Ui() {
|
|
|
3385
3433
|
} : {},
|
|
3386
3434
|
name: e.name,
|
|
3387
3435
|
email: e.email,
|
|
3388
|
-
image:
|
|
3436
|
+
image: Wi(e)
|
|
3389
3437
|
}
|
|
3390
3438
|
},
|
|
3391
3439
|
preserved: t
|
|
@@ -3407,10 +3455,10 @@ function Ui() {
|
|
|
3407
3455
|
preserved: t
|
|
3408
3456
|
};
|
|
3409
3457
|
}
|
|
3410
|
-
function
|
|
3458
|
+
function qi(e) {
|
|
3411
3459
|
switch (e.kind) {
|
|
3412
3460
|
case "verified":
|
|
3413
|
-
|
|
3461
|
+
Gi({
|
|
3414
3462
|
clientId: e.identity.clientId,
|
|
3415
3463
|
storage: e.identity.storage,
|
|
3416
3464
|
token: e.identity.storage === "cookies" ? void 0 : e.identity.token,
|
|
@@ -3424,7 +3472,7 @@ function Wi(e) {
|
|
|
3424
3472
|
});
|
|
3425
3473
|
return;
|
|
3426
3474
|
case "anon":
|
|
3427
|
-
|
|
3475
|
+
Gi({
|
|
3428
3476
|
clientId: e.identity.clientId,
|
|
3429
3477
|
anonToken: e.identity.anonToken,
|
|
3430
3478
|
name: e.identity.name,
|
|
@@ -3432,23 +3480,23 @@ function Wi(e) {
|
|
|
3432
3480
|
});
|
|
3433
3481
|
return;
|
|
3434
3482
|
case "recovering":
|
|
3435
|
-
|
|
3483
|
+
Gi({
|
|
3436
3484
|
name: e.preserved.name,
|
|
3437
3485
|
email: e.preserved.email
|
|
3438
3486
|
});
|
|
3439
3487
|
return;
|
|
3440
3488
|
case "unresolved":
|
|
3441
|
-
|
|
3489
|
+
Gi(null);
|
|
3442
3490
|
return;
|
|
3443
3491
|
}
|
|
3444
3492
|
}
|
|
3445
|
-
function
|
|
3493
|
+
function Ji(e) {
|
|
3446
3494
|
if (e.kind === "anon" || e.kind === "verified") return e.identity.clientId;
|
|
3447
3495
|
}
|
|
3448
|
-
function
|
|
3496
|
+
function Yi(e) {
|
|
3449
3497
|
return e.kind === "anon" ? e.identity.name ?? null : e.kind === "verified" ? e.identity.name : null;
|
|
3450
3498
|
}
|
|
3451
|
-
function
|
|
3499
|
+
function Xi(e) {
|
|
3452
3500
|
if (e.kind === "anon") {
|
|
3453
3501
|
let t = e.identity.name;
|
|
3454
3502
|
return t ? {
|
|
@@ -3463,8 +3511,8 @@ function qi(e) {
|
|
|
3463
3511
|
}
|
|
3464
3512
|
//#endregion
|
|
3465
3513
|
//#region src/runtime/popup-auth.ts
|
|
3466
|
-
var
|
|
3467
|
-
async function
|
|
3514
|
+
var Zi = "MARKUP_AUTH_RESULT", Qi = "MARKUP_AUTH_RETRY", $i = "MARKUP_AUTH_EXPIRED", ea = 5;
|
|
3515
|
+
async function ta(e) {
|
|
3468
3516
|
let { apiUrl: t, apiKey: n, useCookies: r } = e, i = new URL(t).origin, a = r ? "refresh,cookies" : "refresh";
|
|
3469
3517
|
async function o() {
|
|
3470
3518
|
let e = await fetch(`${t.replace(/\/+$/, "")}/widget/popup-exchange`, {
|
|
@@ -3474,7 +3522,7 @@ async function Qi(e) {
|
|
|
3474
3522
|
"x-markup-api-key": n
|
|
3475
3523
|
},
|
|
3476
3524
|
body: "{}",
|
|
3477
|
-
signal:
|
|
3525
|
+
signal: Oi(J)
|
|
3478
3526
|
});
|
|
3479
3527
|
if (!e.ok) throw Error(`popup-exchange responded with ${e.status}`);
|
|
3480
3528
|
let { code: r } = await e.json(), i = new URL("/widget/auth", t);
|
|
@@ -3497,7 +3545,7 @@ async function Qi(e) {
|
|
|
3497
3545
|
let s = (e) => {
|
|
3498
3546
|
if (!r) {
|
|
3499
3547
|
if (e) {
|
|
3500
|
-
if (n >=
|
|
3548
|
+
if (n >= ea) {
|
|
3501
3549
|
a(), t(/* @__PURE__ */ Error("Sign-in could not be restarted. Close the window and try again"));
|
|
3502
3550
|
return;
|
|
3503
3551
|
}
|
|
@@ -3515,15 +3563,15 @@ async function Qi(e) {
|
|
|
3515
3563
|
function c(n) {
|
|
3516
3564
|
if (n.origin !== i || n.source !== u) return;
|
|
3517
3565
|
let r = n.data;
|
|
3518
|
-
if (r?.type ===
|
|
3566
|
+
if (r?.type === Qi) {
|
|
3519
3567
|
s(!1);
|
|
3520
3568
|
return;
|
|
3521
3569
|
}
|
|
3522
|
-
if (r?.type ===
|
|
3570
|
+
if (r?.type === $i) {
|
|
3523
3571
|
s(!0);
|
|
3524
3572
|
return;
|
|
3525
3573
|
}
|
|
3526
|
-
r?.type ===
|
|
3574
|
+
r?.type === Zi && (a(), r.identity?.id && r.identity?.name ? e({
|
|
3527
3575
|
mode: r.mode === "cookies" ? "cookies" : "localStorage",
|
|
3528
3576
|
identity: r.identity,
|
|
3529
3577
|
token: typeof r.token == "string" ? r.token : null,
|
|
@@ -3551,7 +3599,7 @@ async function Qi(e) {
|
|
|
3551
3599
|
accessToken: d.token,
|
|
3552
3600
|
refreshToken: d.refreshToken
|
|
3553
3601
|
}),
|
|
3554
|
-
signal:
|
|
3602
|
+
signal: Oi(J)
|
|
3555
3603
|
});
|
|
3556
3604
|
if (!e.ok) {
|
|
3557
3605
|
let t = /* @__PURE__ */ Error(`Failed to install widget cookies (${e.status})`);
|
|
@@ -3567,45 +3615,45 @@ async function Qi(e) {
|
|
|
3567
3615
|
}
|
|
3568
3616
|
//#endregion
|
|
3569
3617
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/util.js
|
|
3570
|
-
function
|
|
3618
|
+
function na(e, t) {
|
|
3571
3619
|
if (e.match(/^[a-z]+:\/\//i)) return e;
|
|
3572
3620
|
if (e.match(/^\/\//)) return window.location.protocol + e;
|
|
3573
3621
|
if (e.match(/^[a-z]+:/i)) return e;
|
|
3574
3622
|
let n = document.implementation.createHTMLDocument(), r = n.createElement("base"), i = n.createElement("a");
|
|
3575
3623
|
return n.head.appendChild(r), n.body.appendChild(i), t && (r.href = t), i.href = e, i.href;
|
|
3576
3624
|
}
|
|
3577
|
-
var
|
|
3625
|
+
var ra = (() => {
|
|
3578
3626
|
let e = 0, t = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);
|
|
3579
3627
|
return () => (e += 1, `u${t()}${e}`);
|
|
3580
3628
|
})();
|
|
3581
|
-
function
|
|
3629
|
+
function ia(e) {
|
|
3582
3630
|
let t = [];
|
|
3583
3631
|
for (let n = 0, r = e.length; n < r; n++) t.push(e[n]);
|
|
3584
3632
|
return t;
|
|
3585
3633
|
}
|
|
3586
|
-
var
|
|
3587
|
-
function
|
|
3588
|
-
return
|
|
3634
|
+
var aa = null;
|
|
3635
|
+
function oa(e = {}) {
|
|
3636
|
+
return aa || (e.includeStyleProperties ? (aa = e.includeStyleProperties, aa) : (aa = ia(window.getComputedStyle(document.documentElement)), aa));
|
|
3589
3637
|
}
|
|
3590
|
-
function
|
|
3638
|
+
function sa(e, t) {
|
|
3591
3639
|
let n = (e.ownerDocument.defaultView || window).getComputedStyle(e).getPropertyValue(t);
|
|
3592
3640
|
return n ? parseFloat(n.replace("px", "")) : 0;
|
|
3593
3641
|
}
|
|
3594
|
-
function
|
|
3595
|
-
let t =
|
|
3642
|
+
function ca(e) {
|
|
3643
|
+
let t = sa(e, "border-left-width"), n = sa(e, "border-right-width");
|
|
3596
3644
|
return e.clientWidth + t + n;
|
|
3597
3645
|
}
|
|
3598
|
-
function
|
|
3599
|
-
let t =
|
|
3646
|
+
function la(e) {
|
|
3647
|
+
let t = sa(e, "border-top-width"), n = sa(e, "border-bottom-width");
|
|
3600
3648
|
return e.clientHeight + t + n;
|
|
3601
3649
|
}
|
|
3602
|
-
function
|
|
3650
|
+
function ua(e, t = {}) {
|
|
3603
3651
|
return {
|
|
3604
|
-
width: t.width ||
|
|
3605
|
-
height: t.height ||
|
|
3652
|
+
width: t.width || ca(e),
|
|
3653
|
+
height: t.height || la(e)
|
|
3606
3654
|
};
|
|
3607
3655
|
}
|
|
3608
|
-
function
|
|
3656
|
+
function da() {
|
|
3609
3657
|
let e, t;
|
|
3610
3658
|
try {
|
|
3611
3659
|
t = process;
|
|
@@ -3614,10 +3662,10 @@ function ca() {
|
|
|
3614
3662
|
return n && (e = parseInt(n, 10), Number.isNaN(e) && (e = 1)), e || window.devicePixelRatio || 1;
|
|
3615
3663
|
}
|
|
3616
3664
|
var Y = 16384;
|
|
3617
|
-
function
|
|
3665
|
+
function fa(e) {
|
|
3618
3666
|
(e.width > Y || e.height > Y) && (e.width > Y && e.height > Y ? e.width > e.height ? (e.height *= Y / e.width, e.width = Y) : (e.width *= Y / e.height, e.height = Y) : e.width > Y ? (e.height *= Y / e.width, e.width = Y) : (e.width *= Y / e.height, e.height = Y));
|
|
3619
3667
|
}
|
|
3620
|
-
function
|
|
3668
|
+
function pa(e) {
|
|
3621
3669
|
return new Promise((t, n) => {
|
|
3622
3670
|
let r = new Image();
|
|
3623
3671
|
r.onload = () => {
|
|
@@ -3627,12 +3675,12 @@ function ua(e) {
|
|
|
3627
3675
|
}, r.onerror = n, r.crossOrigin = "anonymous", r.decoding = "async", r.src = e;
|
|
3628
3676
|
});
|
|
3629
3677
|
}
|
|
3630
|
-
async function
|
|
3678
|
+
async function ma(e) {
|
|
3631
3679
|
return Promise.resolve().then(() => new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);
|
|
3632
3680
|
}
|
|
3633
|
-
async function
|
|
3681
|
+
async function ha(e, t, n) {
|
|
3634
3682
|
let r = "http://www.w3.org/2000/svg", i = document.createElementNS(r, "svg"), a = document.createElementNS(r, "foreignObject");
|
|
3635
|
-
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e),
|
|
3683
|
+
return i.setAttribute("width", `${t}`), i.setAttribute("height", `${n}`), i.setAttribute("viewBox", `0 0 ${t} ${n}`), a.setAttribute("width", "100%"), a.setAttribute("height", "100%"), a.setAttribute("x", "0"), a.setAttribute("y", "0"), a.setAttribute("externalResourcesRequired", "true"), i.appendChild(a), a.appendChild(e), ma(i);
|
|
3636
3684
|
}
|
|
3637
3685
|
var X = (e, t) => {
|
|
3638
3686
|
if (e instanceof t) return !0;
|
|
@@ -3641,66 +3689,66 @@ var X = (e, t) => {
|
|
|
3641
3689
|
};
|
|
3642
3690
|
//#endregion
|
|
3643
3691
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-pseudos.js
|
|
3644
|
-
function
|
|
3692
|
+
function ga(e) {
|
|
3645
3693
|
let t = e.getPropertyValue("content");
|
|
3646
3694
|
return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
|
|
3647
3695
|
}
|
|
3648
|
-
function
|
|
3649
|
-
return
|
|
3696
|
+
function _a(e, t) {
|
|
3697
|
+
return oa(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
|
|
3650
3698
|
}
|
|
3651
|
-
function
|
|
3652
|
-
let i = `.${e}:${t}`, a = n.cssText ?
|
|
3699
|
+
function va(e, t, n, r) {
|
|
3700
|
+
let i = `.${e}:${t}`, a = n.cssText ? ga(n) : _a(n, r);
|
|
3653
3701
|
return document.createTextNode(`${i}{${a}}`);
|
|
3654
3702
|
}
|
|
3655
|
-
function
|
|
3703
|
+
function ya(e, t, n, r) {
|
|
3656
3704
|
let i = window.getComputedStyle(e, n), a = i.getPropertyValue("content");
|
|
3657
3705
|
if (a === "" || a === "none") return;
|
|
3658
|
-
let o =
|
|
3706
|
+
let o = ra();
|
|
3659
3707
|
try {
|
|
3660
3708
|
t.className = `${t.className} ${o}`;
|
|
3661
3709
|
} catch {
|
|
3662
3710
|
return;
|
|
3663
3711
|
}
|
|
3664
3712
|
let s = document.createElement("style");
|
|
3665
|
-
s.appendChild(
|
|
3713
|
+
s.appendChild(va(o, n, i, r)), t.appendChild(s);
|
|
3666
3714
|
}
|
|
3667
|
-
function
|
|
3668
|
-
|
|
3715
|
+
function ba(e, t, n) {
|
|
3716
|
+
ya(e, t, ":before", n), ya(e, t, ":after", n);
|
|
3669
3717
|
}
|
|
3670
3718
|
//#endregion
|
|
3671
3719
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/mimes.js
|
|
3672
|
-
var
|
|
3673
|
-
woff:
|
|
3674
|
-
woff2:
|
|
3720
|
+
var xa = "application/font-woff", Sa = "image/jpeg", Ca = {
|
|
3721
|
+
woff: xa,
|
|
3722
|
+
woff2: xa,
|
|
3675
3723
|
ttf: "application/font-truetype",
|
|
3676
3724
|
eot: "application/vnd.ms-fontobject",
|
|
3677
3725
|
png: "image/png",
|
|
3678
|
-
jpg:
|
|
3679
|
-
jpeg:
|
|
3726
|
+
jpg: Sa,
|
|
3727
|
+
jpeg: Sa,
|
|
3680
3728
|
gif: "image/gif",
|
|
3681
3729
|
tiff: "image/tiff",
|
|
3682
3730
|
svg: "image/svg+xml",
|
|
3683
3731
|
webp: "image/webp"
|
|
3684
3732
|
};
|
|
3685
|
-
function
|
|
3733
|
+
function wa(e) {
|
|
3686
3734
|
let t = /\.([^./]*?)$/g.exec(e);
|
|
3687
3735
|
return t ? t[1] : "";
|
|
3688
3736
|
}
|
|
3689
|
-
function
|
|
3690
|
-
return
|
|
3737
|
+
function Ta(e) {
|
|
3738
|
+
return Ca[wa(e).toLowerCase()] || "";
|
|
3691
3739
|
}
|
|
3692
3740
|
//#endregion
|
|
3693
3741
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/dataurl.js
|
|
3694
|
-
function
|
|
3742
|
+
function Ea(e) {
|
|
3695
3743
|
return e.split(/,/)[1];
|
|
3696
3744
|
}
|
|
3697
|
-
function
|
|
3745
|
+
function Da(e) {
|
|
3698
3746
|
return e.search(/^(data:)/) !== -1;
|
|
3699
3747
|
}
|
|
3700
|
-
function
|
|
3748
|
+
function Oa(e, t) {
|
|
3701
3749
|
return `data:${t};base64,${e}`;
|
|
3702
3750
|
}
|
|
3703
|
-
async function
|
|
3751
|
+
async function ka(e, t, n) {
|
|
3704
3752
|
let r = await fetch(e, t);
|
|
3705
3753
|
if (r.status === 404) throw Error(`Resource "${r.url}" not found`);
|
|
3706
3754
|
let i = await r.blob();
|
|
@@ -3718,78 +3766,78 @@ async function Ea(e, t, n) {
|
|
|
3718
3766
|
}, a.readAsDataURL(i);
|
|
3719
3767
|
});
|
|
3720
3768
|
}
|
|
3721
|
-
var
|
|
3722
|
-
function
|
|
3769
|
+
var Aa = {};
|
|
3770
|
+
function ja(e, t, n) {
|
|
3723
3771
|
let r = e.replace(/\?.*/, "");
|
|
3724
3772
|
return n && (r = e), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\//, "")), t ? `[${t}]${r}` : r;
|
|
3725
3773
|
}
|
|
3726
|
-
async function
|
|
3727
|
-
let r =
|
|
3728
|
-
if (
|
|
3774
|
+
async function Ma(e, t, n) {
|
|
3775
|
+
let r = ja(e, t, n.includeQueryParams);
|
|
3776
|
+
if (Aa[r] != null) return Aa[r];
|
|
3729
3777
|
n.cacheBust && (e += (/\?/.test(e) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
|
|
3730
3778
|
let i;
|
|
3731
3779
|
try {
|
|
3732
|
-
i =
|
|
3780
|
+
i = Oa(await ka(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", Ea(n))), t);
|
|
3733
3781
|
} catch (t) {
|
|
3734
3782
|
i = n.imagePlaceholder || "";
|
|
3735
3783
|
let r = `Failed to fetch resource: ${e}`;
|
|
3736
3784
|
t && (r = typeof t == "string" ? t : t.message), r && console.warn(r);
|
|
3737
3785
|
}
|
|
3738
|
-
return
|
|
3786
|
+
return Aa[r] = i, i;
|
|
3739
3787
|
}
|
|
3740
3788
|
//#endregion
|
|
3741
3789
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-node.js
|
|
3742
|
-
async function
|
|
3790
|
+
async function Na(e) {
|
|
3743
3791
|
let t = e.toDataURL();
|
|
3744
|
-
return t === "data:," ? e.cloneNode(!1) :
|
|
3792
|
+
return t === "data:," ? e.cloneNode(!1) : pa(t);
|
|
3745
3793
|
}
|
|
3746
|
-
async function
|
|
3794
|
+
async function Pa(e, t) {
|
|
3747
3795
|
if (e.currentSrc) {
|
|
3748
3796
|
let t = document.createElement("canvas"), n = t.getContext("2d");
|
|
3749
|
-
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height),
|
|
3797
|
+
return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height), pa(t.toDataURL());
|
|
3750
3798
|
}
|
|
3751
3799
|
let n = e.poster;
|
|
3752
|
-
return
|
|
3800
|
+
return pa(await Ma(n, Ta(n), t));
|
|
3753
3801
|
}
|
|
3754
|
-
async function
|
|
3802
|
+
async function Fa(e, t) {
|
|
3755
3803
|
try {
|
|
3756
|
-
if (e?.contentDocument?.body) return await
|
|
3804
|
+
if (e?.contentDocument?.body) return await Ga(e.contentDocument.body, t, !0);
|
|
3757
3805
|
} catch {}
|
|
3758
3806
|
return e.cloneNode(!1);
|
|
3759
3807
|
}
|
|
3760
|
-
async function
|
|
3761
|
-
return X(e, HTMLCanvasElement) ?
|
|
3808
|
+
async function Ia(e, t) {
|
|
3809
|
+
return X(e, HTMLCanvasElement) ? Na(e) : X(e, HTMLVideoElement) ? Pa(e, t) : X(e, HTMLIFrameElement) ? Fa(e, t) : e.cloneNode(Ra(e));
|
|
3762
3810
|
}
|
|
3763
|
-
var
|
|
3764
|
-
async function
|
|
3765
|
-
if (
|
|
3811
|
+
var La = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", Ra = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
|
|
3812
|
+
async function za(e, t, n) {
|
|
3813
|
+
if (Ra(t)) return t;
|
|
3766
3814
|
let r = [];
|
|
3767
|
-
return r =
|
|
3815
|
+
return r = La(e) && e.assignedNodes ? ia(e.assignedNodes()) : X(e, HTMLIFrameElement) && e.contentDocument?.body ? ia(e.contentDocument.body.childNodes) : ia((e.shadowRoot ?? e).childNodes), r.length === 0 || X(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => Ga(r, n)).then((e) => {
|
|
3768
3816
|
e && t.appendChild(e);
|
|
3769
3817
|
}), Promise.resolve()), t;
|
|
3770
3818
|
}
|
|
3771
|
-
function
|
|
3819
|
+
function Ba(e, t, n) {
|
|
3772
3820
|
let r = t.style;
|
|
3773
3821
|
if (!r) return;
|
|
3774
3822
|
let i = window.getComputedStyle(e);
|
|
3775
|
-
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) :
|
|
3823
|
+
i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : oa(n).forEach((n) => {
|
|
3776
3824
|
let a = i.getPropertyValue(n);
|
|
3777
3825
|
n === "font-size" && a.endsWith("px") && (a = `${Math.floor(parseFloat(a.substring(0, a.length - 2))) - .1}px`), X(e, HTMLIFrameElement) && n === "display" && a === "inline" && (a = "block"), n === "d" && t.getAttribute("d") && (a = `path(${t.getAttribute("d")})`), r.setProperty(n, a, i.getPropertyPriority(n));
|
|
3778
3826
|
});
|
|
3779
3827
|
}
|
|
3780
|
-
function
|
|
3828
|
+
function Va(e, t) {
|
|
3781
3829
|
X(e, HTMLTextAreaElement) && (t.innerHTML = e.value), X(e, HTMLInputElement) && t.setAttribute("value", e.value);
|
|
3782
3830
|
}
|
|
3783
|
-
function
|
|
3831
|
+
function Ha(e, t) {
|
|
3784
3832
|
if (X(e, HTMLSelectElement)) {
|
|
3785
3833
|
let n = t, r = Array.from(n.children).find((t) => e.value === t.getAttribute("value"));
|
|
3786
3834
|
r && r.setAttribute("selected", "");
|
|
3787
3835
|
}
|
|
3788
3836
|
}
|
|
3789
|
-
function
|
|
3790
|
-
return X(t, Element) && (
|
|
3837
|
+
function Ua(e, t, n) {
|
|
3838
|
+
return X(t, Element) && (Ba(e, t, n), ba(e, t, n), Va(e, t), Ha(e, t)), t;
|
|
3791
3839
|
}
|
|
3792
|
-
async function
|
|
3840
|
+
async function Wa(e, t) {
|
|
3793
3841
|
let n = e.querySelectorAll ? e.querySelectorAll("use") : [];
|
|
3794
3842
|
if (n.length === 0) return e;
|
|
3795
3843
|
let r = {};
|
|
@@ -3797,7 +3845,7 @@ async function Va(e, t) {
|
|
|
3797
3845
|
let a = n[i].getAttribute("xlink:href");
|
|
3798
3846
|
if (a) {
|
|
3799
3847
|
let n = e.querySelector(a), i = document.querySelector(a);
|
|
3800
|
-
!n && i && !r[a] && (r[a] = await
|
|
3848
|
+
!n && i && !r[a] && (r[a] = await Ga(i, t, !0));
|
|
3801
3849
|
}
|
|
3802
3850
|
}
|
|
3803
3851
|
let i = Object.values(r);
|
|
@@ -3811,61 +3859,61 @@ async function Va(e, t) {
|
|
|
3811
3859
|
}
|
|
3812
3860
|
return e;
|
|
3813
3861
|
}
|
|
3814
|
-
async function
|
|
3815
|
-
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) =>
|
|
3862
|
+
async function Ga(e, t, n) {
|
|
3863
|
+
return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => Ia(e, t)).then((n) => za(e, n, t)).then((n) => Ua(e, n, t)).then((e) => Wa(e, t));
|
|
3816
3864
|
}
|
|
3817
3865
|
//#endregion
|
|
3818
3866
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-resources.js
|
|
3819
|
-
var
|
|
3820
|
-
function
|
|
3867
|
+
var Ka = /url\((['"]?)([^'"]+?)\1\)/g, qa = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, Ja = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
|
|
3868
|
+
function Ya(e) {
|
|
3821
3869
|
let t = e.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
|
|
3822
3870
|
return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`, "g");
|
|
3823
3871
|
}
|
|
3824
|
-
function
|
|
3872
|
+
function Xa(e) {
|
|
3825
3873
|
let t = [];
|
|
3826
|
-
return e.replace(
|
|
3874
|
+
return e.replace(Ka, (e, n, r) => (t.push(r), e)), t.filter((e) => !Da(e));
|
|
3827
3875
|
}
|
|
3828
|
-
async function
|
|
3876
|
+
async function Za(e, t, n, r, i) {
|
|
3829
3877
|
try {
|
|
3830
|
-
let a = n ?
|
|
3831
|
-
return s = i ?
|
|
3878
|
+
let a = n ? na(t, n) : t, o = Ta(t), s;
|
|
3879
|
+
return s = i ? Oa(await i(a), o) : await Ma(a, o, r), e.replace(Ya(t), `$1${s}$3`);
|
|
3832
3880
|
} catch {}
|
|
3833
3881
|
return e;
|
|
3834
3882
|
}
|
|
3835
|
-
function
|
|
3836
|
-
return t ? e.replace(
|
|
3883
|
+
function Qa(e, { preferredFontFormat: t }) {
|
|
3884
|
+
return t ? e.replace(Ja, (e) => {
|
|
3837
3885
|
for (;;) {
|
|
3838
|
-
let [n, , r] =
|
|
3886
|
+
let [n, , r] = qa.exec(e) || [];
|
|
3839
3887
|
if (!r) return "";
|
|
3840
3888
|
if (r === t) return `src: ${n};`;
|
|
3841
3889
|
}
|
|
3842
3890
|
}) : e;
|
|
3843
3891
|
}
|
|
3844
|
-
function
|
|
3845
|
-
return e.search(
|
|
3892
|
+
function $a(e) {
|
|
3893
|
+
return e.search(Ka) !== -1;
|
|
3846
3894
|
}
|
|
3847
|
-
async function
|
|
3848
|
-
if (
|
|
3849
|
-
let r =
|
|
3850
|
-
return
|
|
3895
|
+
async function eo(e, t, n) {
|
|
3896
|
+
if (!$a(e)) return e;
|
|
3897
|
+
let r = Qa(e, n);
|
|
3898
|
+
return Xa(r).reduce((e, r) => e.then((e) => Za(e, r, t, n)), Promise.resolve(r));
|
|
3851
3899
|
}
|
|
3852
3900
|
//#endregion
|
|
3853
3901
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-images.js
|
|
3854
|
-
async function
|
|
3902
|
+
async function to(e, t, n) {
|
|
3855
3903
|
let r = t.style?.getPropertyValue(e);
|
|
3856
3904
|
if (r) {
|
|
3857
|
-
let i = await
|
|
3905
|
+
let i = await eo(r, null, n);
|
|
3858
3906
|
return t.style.setProperty(e, i, t.style.getPropertyPriority(e)), !0;
|
|
3859
3907
|
}
|
|
3860
3908
|
return !1;
|
|
3861
3909
|
}
|
|
3862
|
-
async function
|
|
3863
|
-
await
|
|
3910
|
+
async function no(e, t) {
|
|
3911
|
+
await to("background", e, t) || await to("background-image", e, t), await to("mask", e, t) || await to("-webkit-mask", e, t) || await to("mask-image", e, t) || await to("-webkit-mask-image", e, t);
|
|
3864
3912
|
}
|
|
3865
|
-
async function
|
|
3913
|
+
async function ro(e, t) {
|
|
3866
3914
|
let n = X(e, HTMLImageElement);
|
|
3867
|
-
if (!(n && !
|
|
3868
|
-
let r = n ? e.src : e.href.baseVal, i = await
|
|
3915
|
+
if (!(n && !Da(e.src)) && !(X(e, SVGImageElement) && !Da(e.href.baseVal))) return;
|
|
3916
|
+
let r = n ? e.src : e.href.baseVal, i = await Ma(r, Ta(r), t);
|
|
3869
3917
|
await new Promise((r, a) => {
|
|
3870
3918
|
e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
|
|
3871
3919
|
try {
|
|
@@ -3878,16 +3926,16 @@ async function eo(e, t) {
|
|
|
3878
3926
|
o.decode &&= r, o.loading === "lazy" && (o.loading = "eager"), n ? (e.srcset = "", e.src = i) : e.href.baseVal = i;
|
|
3879
3927
|
});
|
|
3880
3928
|
}
|
|
3881
|
-
async function
|
|
3882
|
-
let n =
|
|
3929
|
+
async function io(e, t) {
|
|
3930
|
+
let n = ia(e.childNodes).map((e) => ao(e, t));
|
|
3883
3931
|
await Promise.all(n).then(() => e);
|
|
3884
3932
|
}
|
|
3885
|
-
async function
|
|
3886
|
-
X(e, Element) && (await
|
|
3933
|
+
async function ao(e, t) {
|
|
3934
|
+
X(e, Element) && (await no(e, t), await ro(e, t), await io(e, t));
|
|
3887
3935
|
}
|
|
3888
3936
|
//#endregion
|
|
3889
3937
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/apply-style.js
|
|
3890
|
-
function
|
|
3938
|
+
function oo(e, t) {
|
|
3891
3939
|
let { style: n } = e;
|
|
3892
3940
|
t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.width && (n.width = `${t.width}px`), t.height && (n.height = `${t.height}px`);
|
|
3893
3941
|
let r = t.style;
|
|
@@ -3897,22 +3945,22 @@ function ro(e, t) {
|
|
|
3897
3945
|
}
|
|
3898
3946
|
//#endregion
|
|
3899
3947
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-webfonts.js
|
|
3900
|
-
var
|
|
3901
|
-
async function
|
|
3902
|
-
let t =
|
|
3948
|
+
var so = {};
|
|
3949
|
+
async function co(e) {
|
|
3950
|
+
let t = so[e];
|
|
3903
3951
|
return t ?? (t = {
|
|
3904
3952
|
url: e,
|
|
3905
3953
|
cssText: await (await fetch(e)).text()
|
|
3906
|
-
},
|
|
3954
|
+
}, so[e] = t, t);
|
|
3907
3955
|
}
|
|
3908
|
-
async function
|
|
3956
|
+
async function lo(e, t) {
|
|
3909
3957
|
let n = e.cssText, r = /url\(["']?([^"')]+)["']?\)/g, i = (n.match(/url\([^)]+\)/g) || []).map(async (i) => {
|
|
3910
3958
|
let a = i.replace(r, "$1");
|
|
3911
|
-
return a.startsWith("https://") || (a = new URL(a, e.url).href),
|
|
3959
|
+
return a.startsWith("https://") || (a = new URL(a, e.url).href), ka(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
|
|
3912
3960
|
});
|
|
3913
3961
|
return Promise.all(i).then(() => n);
|
|
3914
3962
|
}
|
|
3915
|
-
function
|
|
3963
|
+
function uo(e) {
|
|
3916
3964
|
if (e == null) return [];
|
|
3917
3965
|
let t = [], n = e.replace(/(\/\*[\s\S]*?\*\/)/gi, ""), r = /* @__PURE__ */ RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
|
|
3918
3966
|
for (;;) {
|
|
@@ -3932,13 +3980,13 @@ function so(e) {
|
|
|
3932
3980
|
}
|
|
3933
3981
|
return t;
|
|
3934
3982
|
}
|
|
3935
|
-
async function
|
|
3983
|
+
async function fo(e, t) {
|
|
3936
3984
|
let n = [], r = [];
|
|
3937
3985
|
return e.forEach((n) => {
|
|
3938
3986
|
if ("cssRules" in n) try {
|
|
3939
|
-
|
|
3987
|
+
ia(n.cssRules || []).forEach((e, i) => {
|
|
3940
3988
|
if (e.type === CSSRule.IMPORT_RULE) {
|
|
3941
|
-
let a = i + 1, o = e.href, s =
|
|
3989
|
+
let a = i + 1, o = e.href, s = co(o).then((e) => lo(e, t)).then((e) => uo(e).forEach((e) => {
|
|
3942
3990
|
try {
|
|
3943
3991
|
n.insertRule(e, e.startsWith("@import") ? a += 1 : n.cssRules.length);
|
|
3944
3992
|
} catch (t) {
|
|
@@ -3955,7 +4003,7 @@ async function co(e, t) {
|
|
|
3955
4003
|
});
|
|
3956
4004
|
} catch (i) {
|
|
3957
4005
|
let a = e.find((e) => e.href == null) || document.styleSheets[0];
|
|
3958
|
-
n.href != null && r.push(
|
|
4006
|
+
n.href != null && r.push(co(n.href).then((e) => lo(e, t)).then((e) => uo(e).forEach((e) => {
|
|
3959
4007
|
a.insertRule(e, a.cssRules.length);
|
|
3960
4008
|
})).catch((e) => {
|
|
3961
4009
|
console.error("Error loading remote stylesheet", e);
|
|
@@ -3963,7 +4011,7 @@ async function co(e, t) {
|
|
|
3963
4011
|
}
|
|
3964
4012
|
}), Promise.all(r).then(() => (e.forEach((e) => {
|
|
3965
4013
|
if ("cssRules" in e) try {
|
|
3966
|
-
|
|
4014
|
+
ia(e.cssRules || []).forEach((e) => {
|
|
3967
4015
|
n.push(e);
|
|
3968
4016
|
});
|
|
3969
4017
|
} catch (t) {
|
|
@@ -3971,36 +4019,36 @@ async function co(e, t) {
|
|
|
3971
4019
|
}
|
|
3972
4020
|
}), n));
|
|
3973
4021
|
}
|
|
3974
|
-
function
|
|
3975
|
-
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) =>
|
|
4022
|
+
function po(e) {
|
|
4023
|
+
return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => $a(e.style.getPropertyValue("src")));
|
|
3976
4024
|
}
|
|
3977
|
-
async function
|
|
4025
|
+
async function mo(e, t) {
|
|
3978
4026
|
if (e.ownerDocument == null) throw Error("Provided element is not within a Document");
|
|
3979
|
-
return
|
|
4027
|
+
return po(await fo(ia(e.ownerDocument.styleSheets), t));
|
|
3980
4028
|
}
|
|
3981
|
-
function
|
|
4029
|
+
function ho(e) {
|
|
3982
4030
|
return e.trim().replace(/["']/g, "");
|
|
3983
4031
|
}
|
|
3984
|
-
function
|
|
4032
|
+
function go(e) {
|
|
3985
4033
|
let t = /* @__PURE__ */ new Set();
|
|
3986
4034
|
function n(e) {
|
|
3987
4035
|
(e.style.fontFamily || getComputedStyle(e).fontFamily).split(",").forEach((e) => {
|
|
3988
|
-
t.add(
|
|
4036
|
+
t.add(ho(e));
|
|
3989
4037
|
}), Array.from(e.children).forEach((e) => {
|
|
3990
4038
|
e instanceof HTMLElement && n(e);
|
|
3991
4039
|
});
|
|
3992
4040
|
}
|
|
3993
4041
|
return n(e), t;
|
|
3994
4042
|
}
|
|
3995
|
-
async function
|
|
3996
|
-
let n = await
|
|
3997
|
-
return (await Promise.all(n.filter((e) => r.has(
|
|
4043
|
+
async function _o(e, t) {
|
|
4044
|
+
let n = await mo(e, t), r = go(e);
|
|
4045
|
+
return (await Promise.all(n.filter((e) => r.has(ho(e.style.fontFamily))).map((e) => {
|
|
3998
4046
|
let n = e.parentStyleSheet ? e.parentStyleSheet.href : null;
|
|
3999
|
-
return
|
|
4047
|
+
return eo(e.cssText, n, t);
|
|
4000
4048
|
}))).join("\n");
|
|
4001
4049
|
}
|
|
4002
|
-
async function
|
|
4003
|
-
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await
|
|
4050
|
+
async function vo(e, t) {
|
|
4051
|
+
let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await _o(e, t) : t.fontEmbedCSS;
|
|
4004
4052
|
if (n) {
|
|
4005
4053
|
let t = document.createElement("style"), r = document.createTextNode(n);
|
|
4006
4054
|
t.appendChild(r), e.firstChild ? e.insertBefore(t, e.firstChild) : e.appendChild(t);
|
|
@@ -4008,17 +4056,17 @@ async function ho(e, t) {
|
|
|
4008
4056
|
}
|
|
4009
4057
|
//#endregion
|
|
4010
4058
|
//#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/index.js
|
|
4011
|
-
async function
|
|
4012
|
-
let { width: n, height: r } =
|
|
4013
|
-
return await
|
|
4059
|
+
async function yo(e, t = {}) {
|
|
4060
|
+
let { width: n, height: r } = ua(e, t), i = await Ga(e, t, !0);
|
|
4061
|
+
return await vo(i, t), await ao(i, t), oo(i, t), await ha(i, n, r);
|
|
4014
4062
|
}
|
|
4015
|
-
async function
|
|
4016
|
-
let { width: n, height: r } =
|
|
4017
|
-
return a.width = c * s, a.height = l * s, t.skipAutoScale ||
|
|
4063
|
+
async function bo(e, t = {}) {
|
|
4064
|
+
let { width: n, height: r } = ua(e, t), i = await pa(await yo(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || da(), c = t.canvasWidth || n, l = t.canvasHeight || r;
|
|
4065
|
+
return a.width = c * s, a.height = l * s, t.skipAutoScale || fa(a), a.style.width = `${c}`, a.style.height = `${l}`, t.backgroundColor && (o.fillStyle = t.backgroundColor, o.fillRect(0, 0, a.width, a.height)), o.drawImage(i, 0, 0, a.width, a.height), a;
|
|
4018
4066
|
}
|
|
4019
4067
|
//#endregion
|
|
4020
4068
|
//#region src/runtime/screenshot.ts
|
|
4021
|
-
var
|
|
4069
|
+
var xo = 2097152, So = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Co = [
|
|
4022
4070
|
{
|
|
4023
4071
|
quality: .85,
|
|
4024
4072
|
scale: 1
|
|
@@ -4035,8 +4083,8 @@ var vo = 2097152, yo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAA
|
|
|
4035
4083
|
quality: .6,
|
|
4036
4084
|
scale: .5
|
|
4037
4085
|
}
|
|
4038
|
-
],
|
|
4039
|
-
function
|
|
4086
|
+
], wo = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", To = "input[type=\"password\"],input[autocomplete~=\"cc-number\"],input[autocomplete~=\"cc-csc\"],input[autocomplete~=\"cc-exp\"],input[autocomplete~=\"cc-name\"],input[autocomplete~=\"cc-type\"],input[autocomplete~=\"current-password\"],input[autocomplete~=\"new-password\"],input[autocomplete~=\"one-time-code\"]";
|
|
4087
|
+
function Eo(e) {
|
|
4040
4088
|
let t = e.parentElement;
|
|
4041
4089
|
for (; t;) {
|
|
4042
4090
|
if (t.hasAttribute("data-markup-safe")) return !0;
|
|
@@ -4044,37 +4092,37 @@ function Co(e) {
|
|
|
4044
4092
|
}
|
|
4045
4093
|
return !1;
|
|
4046
4094
|
}
|
|
4047
|
-
function
|
|
4095
|
+
function Do(e) {
|
|
4048
4096
|
let t = /* @__PURE__ */ new Set(), n = [];
|
|
4049
4097
|
function r(e) {
|
|
4050
4098
|
t.has(e) || (t.add(e), n.push(e));
|
|
4051
4099
|
}
|
|
4052
4100
|
for (let e of document.querySelectorAll("[data-markup-private],[data-markup-redact]")) r(e);
|
|
4053
|
-
for (let e of document.querySelectorAll(
|
|
4101
|
+
for (let e of document.querySelectorAll(To)) Eo(e) || r(e);
|
|
4054
4102
|
if (e.redactSelector) try {
|
|
4055
|
-
for (let t of document.querySelectorAll(e.redactSelector))
|
|
4103
|
+
for (let t of document.querySelectorAll(e.redactSelector)) Eo(t) || r(t);
|
|
4056
4104
|
} catch (e) {
|
|
4057
4105
|
I(e, { context: "screenshot-redact-selector" });
|
|
4058
4106
|
}
|
|
4059
|
-
if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea"))
|
|
4107
|
+
if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Eo(e) || r(e);
|
|
4060
4108
|
return n;
|
|
4061
4109
|
}
|
|
4062
|
-
function
|
|
4110
|
+
function Oo(e) {
|
|
4063
4111
|
let t = e.getAttribute("style");
|
|
4064
|
-
return e.setAttribute("style", t ? `${t};${
|
|
4112
|
+
return e.setAttribute("style", t ? `${t};${wo}` : wo), () => {
|
|
4065
4113
|
t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
|
|
4066
4114
|
};
|
|
4067
4115
|
}
|
|
4068
|
-
function
|
|
4116
|
+
function ko(e) {
|
|
4069
4117
|
if (e.id) return `#${CSS.escape(e.id)}`;
|
|
4070
4118
|
let t = e.tagName.toLowerCase(), n = e.getAttribute("type"), r = e.getAttribute("name");
|
|
4071
4119
|
return n && r ? `${t}[type="${n}"][name="${r}"]` : n ? `${t}[type="${n}"]` : r ? `${t}[name="${r}"]` : t;
|
|
4072
4120
|
}
|
|
4073
|
-
async function
|
|
4121
|
+
async function Ao(e, t, n) {
|
|
4074
4122
|
try {
|
|
4075
|
-
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ?
|
|
4123
|
+
let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ? Do(n) : [], s = o.map(ko), c = o.map(Oo), l;
|
|
4076
4124
|
try {
|
|
4077
|
-
l = await
|
|
4125
|
+
l = await bo(document.documentElement, {
|
|
4078
4126
|
width: r,
|
|
4079
4127
|
height: i,
|
|
4080
4128
|
cacheBust: !0,
|
|
@@ -4083,7 +4131,7 @@ async function Do(e, t, n) {
|
|
|
4083
4131
|
filter(t) {
|
|
4084
4132
|
return !(e && (t === e || e.contains(t)) || t instanceof Element && t.hasAttribute("data-markup-skip"));
|
|
4085
4133
|
},
|
|
4086
|
-
imagePlaceholder:
|
|
4134
|
+
imagePlaceholder: So,
|
|
4087
4135
|
onImageErrorHandler: () => {},
|
|
4088
4136
|
style: {
|
|
4089
4137
|
transform: `translateY(-${window.scrollY}px)`,
|
|
@@ -4095,9 +4143,9 @@ async function Do(e, t, n) {
|
|
|
4095
4143
|
}
|
|
4096
4144
|
if (t) {
|
|
4097
4145
|
let e = l.getContext("2d");
|
|
4098
|
-
e &&
|
|
4146
|
+
e && Po(e, t.x, t.y, a);
|
|
4099
4147
|
}
|
|
4100
|
-
let u = await
|
|
4148
|
+
let u = await No(l);
|
|
4101
4149
|
return u ? {
|
|
4102
4150
|
blob: u,
|
|
4103
4151
|
redactedCount: s.length,
|
|
@@ -4107,29 +4155,29 @@ async function Do(e, t, n) {
|
|
|
4107
4155
|
return I(e, { context: "screenshot-capture" }), null;
|
|
4108
4156
|
}
|
|
4109
4157
|
}
|
|
4110
|
-
function
|
|
4158
|
+
function jo(e, t) {
|
|
4111
4159
|
return new Promise((n) => e.toBlob(n, "image/jpeg", t));
|
|
4112
4160
|
}
|
|
4113
|
-
function
|
|
4161
|
+
function Mo(e, t) {
|
|
4114
4162
|
let n = document.createElement("canvas");
|
|
4115
4163
|
n.width = Math.max(1, Math.round(e.width * t)), n.height = Math.max(1, Math.round(e.height * t));
|
|
4116
4164
|
let r = n.getContext("2d");
|
|
4117
4165
|
return r ? (r.imageSmoothingQuality = "high", r.drawImage(e, 0, 0, n.width, n.height), n) : null;
|
|
4118
4166
|
}
|
|
4119
|
-
async function
|
|
4167
|
+
async function No(e) {
|
|
4120
4168
|
let t = null;
|
|
4121
|
-
for (let { quality: n, scale: r } of
|
|
4122
|
-
let i = r === 1 ? e :
|
|
4169
|
+
for (let { quality: n, scale: r } of Co) {
|
|
4170
|
+
let i = r === 1 ? e : Mo(e, r);
|
|
4123
4171
|
if (!i) continue;
|
|
4124
|
-
let a = await
|
|
4172
|
+
let a = await jo(i, n);
|
|
4125
4173
|
if (a) {
|
|
4126
|
-
if (a.size <=
|
|
4174
|
+
if (a.size <= xo) return a;
|
|
4127
4175
|
t = t == null ? a.size : Math.min(t, a.size);
|
|
4128
4176
|
}
|
|
4129
4177
|
}
|
|
4130
|
-
return I(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${
|
|
4178
|
+
return I(/* @__PURE__ */ Error(t == null ? "Screenshot encode produced no blob at any quality/scale" : `Screenshot still ${t} bytes at the end of the encode ladder (cap ${xo})`), { context: "screenshot-encode" }), null;
|
|
4131
4179
|
}
|
|
4132
|
-
function
|
|
4180
|
+
function Po(e, t, n, r) {
|
|
4133
4181
|
let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
|
|
4134
4182
|
e.save();
|
|
4135
4183
|
let l = 2 * i;
|
|
@@ -4147,7 +4195,7 @@ function jo(e, t, n, r) {
|
|
|
4147
4195
|
}
|
|
4148
4196
|
//#endregion
|
|
4149
4197
|
//#region src/runtime/use-subscription-token.ts
|
|
4150
|
-
var
|
|
4198
|
+
var Fo = Ur({
|
|
4151
4199
|
idle: { issued: (e, t) => ({
|
|
4152
4200
|
kind: "active",
|
|
4153
4201
|
token: t.token,
|
|
@@ -4158,9 +4206,9 @@ var Mo = Ur({
|
|
|
4158
4206
|
token: t.token,
|
|
4159
4207
|
expiresAt: t.expiresAt
|
|
4160
4208
|
}) }
|
|
4161
|
-
}),
|
|
4162
|
-
function
|
|
4163
|
-
let [t, n] = Wr(
|
|
4209
|
+
}), Io = 18e5, Lo = 6e4, Ro = 6e4;
|
|
4210
|
+
function zo(e) {
|
|
4211
|
+
let [t, n] = Wr(Fo, { kind: "idle" });
|
|
4164
4212
|
return V(() => {
|
|
4165
4213
|
let t = !1, r = null;
|
|
4166
4214
|
async function i() {
|
|
@@ -4172,11 +4220,11 @@ function Io(e) {
|
|
|
4172
4220
|
token: a.token,
|
|
4173
4221
|
expiresAt: a.expiresAt
|
|
4174
4222
|
});
|
|
4175
|
-
let o = Math.max(
|
|
4223
|
+
let o = Math.max(Lo, a.expiresAt - Date.now() - Io);
|
|
4176
4224
|
r = setTimeout(i, o);
|
|
4177
4225
|
} catch (e) {
|
|
4178
4226
|
if (t) return;
|
|
4179
|
-
e?.name !== "TypeError" && I(e, { context: "subscription-token-refresh" }), r = setTimeout(i,
|
|
4227
|
+
e?.name !== "TypeError" && I(e, { context: "subscription-token-refresh" }), r = setTimeout(i, Ro);
|
|
4180
4228
|
}
|
|
4181
4229
|
}
|
|
4182
4230
|
return i(), () => {
|
|
@@ -4186,7 +4234,7 @@ function Io(e) {
|
|
|
4186
4234
|
}
|
|
4187
4235
|
//#endregion
|
|
4188
4236
|
//#region src/runtime/refresh-token.ts
|
|
4189
|
-
async function
|
|
4237
|
+
async function Bo(e) {
|
|
4190
4238
|
try {
|
|
4191
4239
|
let t = {
|
|
4192
4240
|
method: "POST",
|
|
@@ -4194,7 +4242,7 @@ async function Lo(e) {
|
|
|
4194
4242
|
"content-type": "application/json",
|
|
4195
4243
|
"x-markup-api-key": e.apiKey
|
|
4196
4244
|
},
|
|
4197
|
-
signal:
|
|
4245
|
+
signal: Oi(J, e.signal)
|
|
4198
4246
|
};
|
|
4199
4247
|
if (e.mode === "cookies") t.credentials = "include", t.body = "{}";
|
|
4200
4248
|
else {
|
|
@@ -4222,8 +4270,8 @@ async function Lo(e) {
|
|
|
4222
4270
|
}
|
|
4223
4271
|
//#endregion
|
|
4224
4272
|
//#region src/runtime/use-token-refresh.ts
|
|
4225
|
-
var
|
|
4226
|
-
function
|
|
4273
|
+
var Vo = 6e4, Ho = 500;
|
|
4274
|
+
function Uo(e, t, n, r, i) {
|
|
4227
4275
|
let a = e.kind === "verified", o = a ? e.identity.storage : void 0, s = a ? e.identity.refreshToken : void 0, c = a ? e.identity.refreshTokenExpiresAt : void 0, l = a ? e.identity.tokenExpiresAt : void 0;
|
|
4228
4276
|
V(() => {
|
|
4229
4277
|
if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
|
|
@@ -4232,8 +4280,8 @@ function Bo(e, t, n, r, i) {
|
|
|
4232
4280
|
i();
|
|
4233
4281
|
return;
|
|
4234
4282
|
}
|
|
4235
|
-
let d = Math.max(
|
|
4236
|
-
let a = await
|
|
4283
|
+
let d = Math.max(Ho, l - Vo - u), f = new AbortController(), p = window.setTimeout(async () => {
|
|
4284
|
+
let a = await Bo({
|
|
4237
4285
|
apiUrl: t,
|
|
4238
4286
|
apiKey: n,
|
|
4239
4287
|
mode: o,
|
|
@@ -4276,7 +4324,7 @@ function Bo(e, t, n, r, i) {
|
|
|
4276
4324
|
function Z(...e) {
|
|
4277
4325
|
return e.filter(Boolean).join(" ");
|
|
4278
4326
|
}
|
|
4279
|
-
function
|
|
4327
|
+
function Wo() {
|
|
4280
4328
|
return typeof navigator < "u" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? {
|
|
4281
4329
|
mod: "⌘",
|
|
4282
4330
|
enter: "↵"
|
|
@@ -4287,7 +4335,7 @@ function Vo() {
|
|
|
4287
4335
|
}
|
|
4288
4336
|
//#endregion
|
|
4289
4337
|
//#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
|
|
4290
|
-
var
|
|
4338
|
+
var Go = 0;
|
|
4291
4339
|
Array.isArray;
|
|
4292
4340
|
function Q(e, n, r, i, a, o) {
|
|
4293
4341
|
n ||= {};
|
|
@@ -4304,7 +4352,7 @@ function Q(e, n, r, i, a, o) {
|
|
|
4304
4352
|
__e: null,
|
|
4305
4353
|
__c: null,
|
|
4306
4354
|
constructor: void 0,
|
|
4307
|
-
__v: --
|
|
4355
|
+
__v: --Go,
|
|
4308
4356
|
__i: -1,
|
|
4309
4357
|
__u: 0,
|
|
4310
4358
|
__source: a,
|
|
@@ -4315,7 +4363,7 @@ function Q(e, n, r, i, a, o) {
|
|
|
4315
4363
|
}
|
|
4316
4364
|
//#endregion
|
|
4317
4365
|
//#region src/runtime/ui/icons.tsx
|
|
4318
|
-
function
|
|
4366
|
+
function Ko({ size: e = 16 }) {
|
|
4319
4367
|
return /* @__PURE__ */ Q("svg", {
|
|
4320
4368
|
width: e,
|
|
4321
4369
|
height: e,
|
|
@@ -4325,7 +4373,7 @@ function Uo({ size: e = 16 }) {
|
|
|
4325
4373
|
children: /* @__PURE__ */ Q("path", { d: "M63.4561 0.00557731C70.6277 -0.0175584 76.9025 1.04088 83.5898 3.71066C97.7952 9.43043 109.186 20.5001 115.311 34.5359C119.708 44.8002 120.746 54.7869 119.156 65.8171C116.857 82.7956 105.129 98.8382 90.0566 106.846C83.4394 110.362 74.7336 113.029 67.2051 113.271C62.4204 113.425 61.1274 113.32 56.6807 115.204C50.2035 117.858 43.6874 120.417 37.1348 122.879C34.8442 123.763 32.3203 124.902 29.9404 125.51C29.4023 125.648 28.1978 125.009 27.7598 124.646C26.9046 123.951 27.0582 122.505 27.0264 121.484C26.8123 114.646 27.3302 107.458 26.8604 100.656C25.1578 98.6714 22.4026 96.603 20.3086 94.1989C12.1853 84.8731 7.05334 73.9949 6.18164 61.6101C4.95583 46.292 9.97176 31.1285 20.0908 19.5632C29.989 8.13202 44.0369 1.11921 59.1221 0.0788195C60.2694 -0.0356049 62.2637 0.00944821 63.4561 0.00557731ZM92.2676 55.7497C91.5754 39.5314 77.8207 26.9725 61.6064 27.7536C45.5175 28.5287 33.0758 42.1537 33.7627 58.2468C34.4496 74.3398 48.007 86.8553 64.1035 86.2566C80.3254 85.6533 92.9599 71.968 92.2676 55.7497Z" })
|
|
4326
4374
|
});
|
|
4327
4375
|
}
|
|
4328
|
-
function
|
|
4376
|
+
function qo({ size: e = 16 }) {
|
|
4329
4377
|
return /* @__PURE__ */ Q("svg", {
|
|
4330
4378
|
width: e,
|
|
4331
4379
|
height: e,
|
|
@@ -4334,7 +4382,7 @@ function Wo({ size: e = 16 }) {
|
|
|
4334
4382
|
children: /* @__PURE__ */ Q("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" })
|
|
4335
4383
|
});
|
|
4336
4384
|
}
|
|
4337
|
-
function
|
|
4385
|
+
function Jo({ size: e = 16 }) {
|
|
4338
4386
|
return /* @__PURE__ */ Q("svg", {
|
|
4339
4387
|
width: e,
|
|
4340
4388
|
height: e,
|
|
@@ -4344,7 +4392,7 @@ function Go({ size: e = 16 }) {
|
|
|
4344
4392
|
children: /* @__PURE__ */ Q("path", { d: "M12.78 5.22a.75.75 0 0 1 0 1.06L9.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z" })
|
|
4345
4393
|
});
|
|
4346
4394
|
}
|
|
4347
|
-
function
|
|
4395
|
+
function Yo({ size: e = 16 }) {
|
|
4348
4396
|
return /* @__PURE__ */ Q("svg", {
|
|
4349
4397
|
width: e,
|
|
4350
4398
|
height: e,
|
|
@@ -4353,7 +4401,7 @@ function Ko({ size: e = 16 }) {
|
|
|
4353
4401
|
children: /* @__PURE__ */ Q("path", { d: "M3 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM8.5 10a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM15.5 8.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Z" })
|
|
4354
4402
|
});
|
|
4355
4403
|
}
|
|
4356
|
-
function
|
|
4404
|
+
function Xo({ size: e = 16 }) {
|
|
4357
4405
|
return /* @__PURE__ */ Q("svg", {
|
|
4358
4406
|
xmlns: "http://www.w3.org/2000/svg",
|
|
4359
4407
|
width: e,
|
|
@@ -4363,7 +4411,7 @@ function qo({ size: e = 16 }) {
|
|
|
4363
4411
|
children: /* @__PURE__ */ Q("path", { d: "M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z" })
|
|
4364
4412
|
});
|
|
4365
4413
|
}
|
|
4366
|
-
function
|
|
4414
|
+
function Zo({ size: e = 16 }) {
|
|
4367
4415
|
return /* @__PURE__ */ Q("svg", {
|
|
4368
4416
|
width: e,
|
|
4369
4417
|
height: e,
|
|
@@ -4377,7 +4425,7 @@ function Jo({ size: e = 16 }) {
|
|
|
4377
4425
|
})
|
|
4378
4426
|
});
|
|
4379
4427
|
}
|
|
4380
|
-
function
|
|
4428
|
+
function Qo({ size: e = 16 }) {
|
|
4381
4429
|
return /* @__PURE__ */ Q("svg", {
|
|
4382
4430
|
width: e,
|
|
4383
4431
|
height: e,
|
|
@@ -4386,7 +4434,7 @@ function Yo({ size: e = 16 }) {
|
|
|
4386
4434
|
children: /* @__PURE__ */ Q("path", { d: "M2.87 2.298a.75.75 0 0 0-.812 1.021L3.39 6.624a1 1 0 0 0 .928.626H8.25a.75.75 0 0 1 0 1.5H4.318a1 1 0 0 0-.927.626l-1.333 3.305a.75.75 0 0 0 .811 1.022 24.89 24.89 0 0 0 11.668-5.115.75.75 0 0 0 0-1.175A24.89 24.89 0 0 0 2.869 2.298Z" })
|
|
4387
4435
|
});
|
|
4388
4436
|
}
|
|
4389
|
-
function
|
|
4437
|
+
function $o({ size: e = 16 }) {
|
|
4390
4438
|
return /* @__PURE__ */ Q("svg", {
|
|
4391
4439
|
width: e,
|
|
4392
4440
|
height: e,
|
|
@@ -4410,19 +4458,19 @@ function $({ size: e = 16, children: t }) {
|
|
|
4410
4458
|
children: t
|
|
4411
4459
|
});
|
|
4412
4460
|
}
|
|
4413
|
-
function
|
|
4461
|
+
function es({ size: e = 16 }) {
|
|
4414
4462
|
return /* @__PURE__ */ Q($, {
|
|
4415
4463
|
size: e,
|
|
4416
4464
|
children: /* @__PURE__ */ Q("path", { d: "M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5z" })
|
|
4417
4465
|
});
|
|
4418
4466
|
}
|
|
4419
|
-
function
|
|
4467
|
+
function ts({ size: e = 16 }) {
|
|
4420
4468
|
return /* @__PURE__ */ Q($, {
|
|
4421
4469
|
size: e,
|
|
4422
4470
|
children: [/* @__PURE__ */ Q("path", { d: "M22 12h-6l-2 3h-4l-2-3H2" }), /* @__PURE__ */ Q("path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" })]
|
|
4423
4471
|
});
|
|
4424
4472
|
}
|
|
4425
|
-
function
|
|
4473
|
+
function ns({ size: e = 16 }) {
|
|
4426
4474
|
return /* @__PURE__ */ Q($, {
|
|
4427
4475
|
size: e,
|
|
4428
4476
|
children: [/* @__PURE__ */ Q("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z" }), /* @__PURE__ */ Q("circle", {
|
|
@@ -4432,7 +4480,7 @@ function $o({ size: e = 16 }) {
|
|
|
4432
4480
|
})]
|
|
4433
4481
|
});
|
|
4434
4482
|
}
|
|
4435
|
-
function
|
|
4483
|
+
function rs({ size: e = 16 }) {
|
|
4436
4484
|
return /* @__PURE__ */ Q($, {
|
|
4437
4485
|
size: e,
|
|
4438
4486
|
children: [
|
|
@@ -4443,13 +4491,13 @@ function es({ size: e = 16 }) {
|
|
|
4443
4491
|
]
|
|
4444
4492
|
});
|
|
4445
4493
|
}
|
|
4446
|
-
function
|
|
4494
|
+
function is({ size: e = 16 }) {
|
|
4447
4495
|
return /* @__PURE__ */ Q($, {
|
|
4448
4496
|
size: e,
|
|
4449
4497
|
children: /* @__PURE__ */ Q("path", { d: "M3 6h18M3 12h18M3 18h18" })
|
|
4450
4498
|
});
|
|
4451
4499
|
}
|
|
4452
|
-
function
|
|
4500
|
+
function as({ size: e = 16 }) {
|
|
4453
4501
|
return /* @__PURE__ */ Q($, {
|
|
4454
4502
|
size: e,
|
|
4455
4503
|
children: [/* @__PURE__ */ Q("circle", {
|
|
@@ -4459,13 +4507,13 @@ function ns({ size: e = 16 }) {
|
|
|
4459
4507
|
}), /* @__PURE__ */ Q("path", { d: "M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41" })]
|
|
4460
4508
|
});
|
|
4461
4509
|
}
|
|
4462
|
-
function
|
|
4510
|
+
function os({ size: e = 16 }) {
|
|
4463
4511
|
return /* @__PURE__ */ Q($, {
|
|
4464
4512
|
size: e,
|
|
4465
4513
|
children: /* @__PURE__ */ Q("path", { d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79z" })
|
|
4466
4514
|
});
|
|
4467
4515
|
}
|
|
4468
|
-
function
|
|
4516
|
+
function ss({ size: e = 16 }) {
|
|
4469
4517
|
return /* @__PURE__ */ Q($, {
|
|
4470
4518
|
size: e,
|
|
4471
4519
|
children: [/* @__PURE__ */ Q("rect", {
|
|
@@ -4477,13 +4525,13 @@ function is({ size: e = 16 }) {
|
|
|
4477
4525
|
}), /* @__PURE__ */ Q("path", { d: "M8 21h8M12 17v4" })]
|
|
4478
4526
|
});
|
|
4479
4527
|
}
|
|
4480
|
-
function
|
|
4528
|
+
function cs({ size: e = 16 }) {
|
|
4481
4529
|
return /* @__PURE__ */ Q($, {
|
|
4482
4530
|
size: e,
|
|
4483
4531
|
children: /* @__PURE__ */ Q("path", { d: "M12 22s8-3.5 8-10V5l-8-3-8 3v7c0 6.5 8 10 8 10z" })
|
|
4484
4532
|
});
|
|
4485
4533
|
}
|
|
4486
|
-
function
|
|
4534
|
+
function ls({ size: e = 16 }) {
|
|
4487
4535
|
return /* @__PURE__ */ Q($, {
|
|
4488
4536
|
size: e,
|
|
4489
4537
|
children: [/* @__PURE__ */ Q("rect", {
|
|
@@ -4495,19 +4543,19 @@ function os({ size: e = 16 }) {
|
|
|
4495
4543
|
}), /* @__PURE__ */ Q("path", { d: "M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M10 14h4" })]
|
|
4496
4544
|
});
|
|
4497
4545
|
}
|
|
4498
|
-
function
|
|
4546
|
+
function us({ size: e = 16 }) {
|
|
4499
4547
|
return /* @__PURE__ */ Q($, {
|
|
4500
4548
|
size: e,
|
|
4501
4549
|
children: [/* @__PURE__ */ Q("path", { d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" }), /* @__PURE__ */ Q("path", { d: "M10 17l5-5-5-5M15 12H3" })]
|
|
4502
4550
|
});
|
|
4503
4551
|
}
|
|
4504
|
-
function
|
|
4552
|
+
function ds({ size: e = 16 }) {
|
|
4505
4553
|
return /* @__PURE__ */ Q($, {
|
|
4506
4554
|
size: e,
|
|
4507
4555
|
children: [/* @__PURE__ */ Q("path", { d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" }), /* @__PURE__ */ Q("path", { d: "M16 17l5-5-5-5M21 12H9" })]
|
|
4508
4556
|
});
|
|
4509
4557
|
}
|
|
4510
|
-
function
|
|
4558
|
+
function fs({ size: e = 16 }) {
|
|
4511
4559
|
return /* @__PURE__ */ Q($, {
|
|
4512
4560
|
size: e,
|
|
4513
4561
|
children: [/* @__PURE__ */ Q("circle", {
|
|
@@ -4517,7 +4565,7 @@ function ls({ size: e = 16 }) {
|
|
|
4517
4565
|
}), /* @__PURE__ */ Q("path", { d: "M4 21a8 8 0 0 1 16 0" })]
|
|
4518
4566
|
});
|
|
4519
4567
|
}
|
|
4520
|
-
function
|
|
4568
|
+
function ps({ size: e = 16 }) {
|
|
4521
4569
|
return /* @__PURE__ */ Q($, {
|
|
4522
4570
|
size: e,
|
|
4523
4571
|
children: [
|
|
@@ -4536,7 +4584,7 @@ function us({ size: e = 16 }) {
|
|
|
4536
4584
|
]
|
|
4537
4585
|
});
|
|
4538
4586
|
}
|
|
4539
|
-
function
|
|
4587
|
+
function ms({ size: e = 16 }) {
|
|
4540
4588
|
return /* @__PURE__ */ Q($, {
|
|
4541
4589
|
size: e,
|
|
4542
4590
|
children: [
|
|
@@ -4548,7 +4596,7 @@ function ds({ size: e = 16 }) {
|
|
|
4548
4596
|
}
|
|
4549
4597
|
//#endregion
|
|
4550
4598
|
//#region src/runtime/ui/identity-menu.tsx
|
|
4551
|
-
function
|
|
4599
|
+
function hs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, onSignIn: a, onSignOut: o, onForgetMe: s }) {
|
|
4552
4600
|
let [c, l] = B(!1), [u, d] = B(!1), [f, p] = B(!1), m = H(null);
|
|
4553
4601
|
V(() => {
|
|
4554
4602
|
if (!c) return;
|
|
@@ -4565,7 +4613,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4565
4613
|
}, [c]), V(() => {
|
|
4566
4614
|
c || (d(!1), p(!1));
|
|
4567
4615
|
}, [c]);
|
|
4568
|
-
let h =
|
|
4616
|
+
let h = Yi(e), g = gs(h), _ = e.kind === "verified", v = e.kind === "verified" ? e.identity.image : void 0, [y, b] = B(null), x = _ && v != null && y !== v, C = _ ? e.identity.email : null, w = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
|
|
4569
4617
|
return /* @__PURE__ */ Q("div", {
|
|
4570
4618
|
ref: m,
|
|
4571
4619
|
style: {
|
|
@@ -4598,7 +4646,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4598
4646
|
}) : _ && g ? /* @__PURE__ */ Q("span", {
|
|
4599
4647
|
class: "markup-avatar-initials",
|
|
4600
4648
|
children: g
|
|
4601
|
-
}) : /* @__PURE__ */ Q(
|
|
4649
|
+
}) : /* @__PURE__ */ Q(fs, { size: 14 })
|
|
4602
4650
|
}), _ && h ? /* @__PURE__ */ Q("span", {
|
|
4603
4651
|
class: "markup-sr-only",
|
|
4604
4652
|
children: h
|
|
@@ -4627,7 +4675,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4627
4675
|
onClick: () => l(!1),
|
|
4628
4676
|
children: [/* @__PURE__ */ Q("span", {
|
|
4629
4677
|
class: "ic",
|
|
4630
|
-
children: /* @__PURE__ */ Q(
|
|
4678
|
+
children: /* @__PURE__ */ Q(ms, { size: 16 })
|
|
4631
4679
|
}), /* @__PURE__ */ Q("span", {
|
|
4632
4680
|
class: "lbl",
|
|
4633
4681
|
children: "Account"
|
|
@@ -4643,7 +4691,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4643
4691
|
},
|
|
4644
4692
|
children: [/* @__PURE__ */ Q("span", {
|
|
4645
4693
|
class: "ic",
|
|
4646
|
-
children: /* @__PURE__ */ Q(
|
|
4694
|
+
children: /* @__PURE__ */ Q(ds, { size: 16 })
|
|
4647
4695
|
}), /* @__PURE__ */ Q("span", {
|
|
4648
4696
|
class: "lbl",
|
|
4649
4697
|
children: r ? "Signing out…" : f ? "Confirm: sign out of this site" : "Sign out"
|
|
@@ -4666,7 +4714,7 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4666
4714
|
onClick: () => {
|
|
4667
4715
|
l(!1), a();
|
|
4668
4716
|
},
|
|
4669
|
-
children: [/* @__PURE__ */ Q(
|
|
4717
|
+
children: [/* @__PURE__ */ Q(us, { size: 14 }), /* @__PURE__ */ Q("span", { children: n ? "Signing in…" : "Sign in" })]
|
|
4670
4718
|
}),
|
|
4671
4719
|
/* @__PURE__ */ Q("button", {
|
|
4672
4720
|
type: "button",
|
|
@@ -4685,12 +4733,12 @@ function fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
|
|
|
4685
4733
|
}) : null]
|
|
4686
4734
|
});
|
|
4687
4735
|
}
|
|
4688
|
-
function
|
|
4736
|
+
function gs(e) {
|
|
4689
4737
|
return e && e.trim().split(/\s+/).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("") || null;
|
|
4690
4738
|
}
|
|
4691
4739
|
//#endregion
|
|
4692
4740
|
//#region src/runtime/use-drag.ts
|
|
4693
|
-
function
|
|
4741
|
+
function _s(e) {
|
|
4694
4742
|
let t = H(e);
|
|
4695
4743
|
t.current = e;
|
|
4696
4744
|
let [n, r] = B(!1);
|
|
@@ -4718,8 +4766,8 @@ function ms(e) {
|
|
|
4718
4766
|
h = !0, r(!0), t.current.onStart?.();
|
|
4719
4767
|
}
|
|
4720
4768
|
let a = Math.max(p, window.innerWidth - u - p), _ = Math.max(p, window.innerHeight - d - p), v = {
|
|
4721
|
-
left:
|
|
4722
|
-
top:
|
|
4769
|
+
left: vs(c + n, p, a),
|
|
4770
|
+
top: vs(l + i, p, _)
|
|
4723
4771
|
};
|
|
4724
4772
|
g = v, t.current.onMove(v);
|
|
4725
4773
|
}
|
|
@@ -4734,12 +4782,12 @@ function ms(e) {
|
|
|
4734
4782
|
isDragging: n
|
|
4735
4783
|
};
|
|
4736
4784
|
}
|
|
4737
|
-
function
|
|
4785
|
+
function vs(e, t, n) {
|
|
4738
4786
|
return Math.max(t, Math.min(n, e));
|
|
4739
4787
|
}
|
|
4740
4788
|
//#endregion
|
|
4741
4789
|
//#region src/runtime/use-focus-trap.ts
|
|
4742
|
-
var
|
|
4790
|
+
var ys = [
|
|
4743
4791
|
"a[href]",
|
|
4744
4792
|
"button:not([disabled])",
|
|
4745
4793
|
"input:not([disabled])",
|
|
@@ -4747,14 +4795,14 @@ var gs = [
|
|
|
4747
4795
|
"textarea:not([disabled])",
|
|
4748
4796
|
"[tabindex]:not([tabindex=\"-1\"])"
|
|
4749
4797
|
].join(",");
|
|
4750
|
-
function
|
|
4798
|
+
function bs(e, t) {
|
|
4751
4799
|
V(() => {
|
|
4752
4800
|
if (!t) return;
|
|
4753
4801
|
let n = e.current;
|
|
4754
4802
|
if (!n) return;
|
|
4755
4803
|
function r(e) {
|
|
4756
4804
|
if (e.key !== "Tab") return;
|
|
4757
|
-
let t = Array.from(n.querySelectorAll(
|
|
4805
|
+
let t = Array.from(n.querySelectorAll(ys)), r = t[0], i = t[t.length - 1];
|
|
4758
4806
|
if (!r || !i) return;
|
|
4759
4807
|
let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
|
|
4760
4808
|
(e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
|
|
@@ -4764,7 +4812,7 @@ function _s(e, t) {
|
|
|
4764
4812
|
}
|
|
4765
4813
|
//#endregion
|
|
4766
4814
|
//#region src/runtime/use-object-url.ts
|
|
4767
|
-
function
|
|
4815
|
+
function xs(e) {
|
|
4768
4816
|
let [t, n] = B(null);
|
|
4769
4817
|
return V(() => {
|
|
4770
4818
|
if (!e) {
|
|
@@ -4777,7 +4825,7 @@ function vs(e) {
|
|
|
4777
4825
|
}
|
|
4778
4826
|
//#endregion
|
|
4779
4827
|
//#region src/runtime/ui/author-prompt.tsx
|
|
4780
|
-
function
|
|
4828
|
+
function Ss({ isPending: e, isConnecting: t = !1, isSigningIn: n = !1, onSubmit: r, onCancel: i, onSignIn: a }) {
|
|
4781
4829
|
let [o, s] = B(""), [c, l] = B(""), u = H(null);
|
|
4782
4830
|
V(() => {
|
|
4783
4831
|
u.current?.focus();
|
|
@@ -4856,27 +4904,27 @@ function ys({ isPending: e, isConnecting: t = !1, isSigningIn: n = !1, onSubmit:
|
|
|
4856
4904
|
}
|
|
4857
4905
|
//#endregion
|
|
4858
4906
|
//#region src/runtime/mention-input.ts
|
|
4859
|
-
var
|
|
4907
|
+
var Cs = "data-markup-mention", ws = "data-markup-mention-name", Ts = /* @__PURE__ */ new Set([
|
|
4860
4908
|
"DIV",
|
|
4861
4909
|
"P",
|
|
4862
4910
|
"LI",
|
|
4863
4911
|
"BLOCKQUOTE",
|
|
4864
4912
|
"PRE"
|
|
4865
|
-
]),
|
|
4866
|
-
function
|
|
4913
|
+
]), Es = 3, Ds = 1;
|
|
4914
|
+
function Os(e) {
|
|
4867
4915
|
let t = "", n = (r) => {
|
|
4868
4916
|
let i = r.childNodes;
|
|
4869
4917
|
for (let a = 0; a < i.length; a++) {
|
|
4870
4918
|
let o = i[a];
|
|
4871
4919
|
if (!o) continue;
|
|
4872
|
-
if (o.nodeType ===
|
|
4920
|
+
if (o.nodeType === Es) {
|
|
4873
4921
|
t += o.data;
|
|
4874
4922
|
continue;
|
|
4875
4923
|
}
|
|
4876
|
-
if (o.nodeType !==
|
|
4877
|
-
let s = o, c = s.getAttribute(
|
|
4924
|
+
if (o.nodeType !== Ds) continue;
|
|
4925
|
+
let s = o, c = s.getAttribute(Cs);
|
|
4878
4926
|
if (c) {
|
|
4879
|
-
let e =
|
|
4927
|
+
let e = ks(s);
|
|
4880
4928
|
t += Yr({
|
|
4881
4929
|
userId: c,
|
|
4882
4930
|
name: e
|
|
@@ -4887,77 +4935,77 @@ function Ts(e) {
|
|
|
4887
4935
|
(r !== e || a !== i.length - 1) && (t += "\n");
|
|
4888
4936
|
continue;
|
|
4889
4937
|
}
|
|
4890
|
-
|
|
4938
|
+
Ts.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
|
|
4891
4939
|
}
|
|
4892
4940
|
};
|
|
4893
4941
|
return n(e), t;
|
|
4894
4942
|
}
|
|
4895
|
-
function
|
|
4896
|
-
return e.getAttribute(
|
|
4943
|
+
function ks(e) {
|
|
4944
|
+
return e.getAttribute(ws) || (e.textContent ?? "").replace(/^@/, "");
|
|
4897
4945
|
}
|
|
4898
|
-
function
|
|
4946
|
+
function As(e, t, n) {
|
|
4899
4947
|
let r = e.createElement("span");
|
|
4900
|
-
return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(
|
|
4948
|
+
return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(Cs, t.userId), r.setAttribute(ws, t.name), r.textContent = `@${t.name}`, r;
|
|
4901
4949
|
}
|
|
4902
|
-
function
|
|
4950
|
+
function js(e, t, n) {
|
|
4903
4951
|
let r = e.createDocumentFragment();
|
|
4904
4952
|
for (let i of Kr(t)) {
|
|
4905
4953
|
if (i.type === "text") {
|
|
4906
4954
|
i.value && r.appendChild(e.createTextNode(i.value));
|
|
4907
4955
|
continue;
|
|
4908
4956
|
}
|
|
4909
|
-
r.appendChild(
|
|
4957
|
+
r.appendChild(As(e, {
|
|
4910
4958
|
userId: i.userId,
|
|
4911
4959
|
name: i.name
|
|
4912
4960
|
}, n));
|
|
4913
4961
|
}
|
|
4914
4962
|
return r;
|
|
4915
4963
|
}
|
|
4916
|
-
function
|
|
4964
|
+
function Ms(e) {
|
|
4917
4965
|
let t = e.getRootNode();
|
|
4918
4966
|
return typeof t.getSelection == "function" ? t.getSelection() : e.ownerDocument.getSelection();
|
|
4919
4967
|
}
|
|
4920
|
-
function
|
|
4921
|
-
let t =
|
|
4968
|
+
function Ns(e) {
|
|
4969
|
+
let t = Ms(e);
|
|
4922
4970
|
if (!t || t.rangeCount === 0 || !t.isCollapsed) return null;
|
|
4923
4971
|
let n = t.focusNode;
|
|
4924
|
-
return !n || n.nodeType !==
|
|
4972
|
+
return !n || n.nodeType !== Es || !e.contains(n) || Ps(n, e) ? null : {
|
|
4925
4973
|
node: n,
|
|
4926
4974
|
offset: t.focusOffset
|
|
4927
4975
|
};
|
|
4928
4976
|
}
|
|
4929
|
-
function
|
|
4977
|
+
function Ps(e, t) {
|
|
4930
4978
|
let n = e;
|
|
4931
4979
|
for (; n && n !== t;) {
|
|
4932
|
-
if (n.nodeType ===
|
|
4980
|
+
if (n.nodeType === Ds && n.hasAttribute("data-markup-mention")) return n;
|
|
4933
4981
|
n = n.parentNode;
|
|
4934
4982
|
}
|
|
4935
4983
|
return null;
|
|
4936
4984
|
}
|
|
4937
|
-
function
|
|
4938
|
-
let t =
|
|
4985
|
+
function Fs(e) {
|
|
4986
|
+
let t = Ms(e);
|
|
4939
4987
|
if (!t || t.rangeCount === 0 || !t.isCollapsed) return;
|
|
4940
4988
|
let n = t.focusNode;
|
|
4941
4989
|
if (!n || !e.contains(n)) return;
|
|
4942
|
-
let r =
|
|
4990
|
+
let r = Ps(n, e);
|
|
4943
4991
|
if (!r) return;
|
|
4944
4992
|
let i = r.nextSibling;
|
|
4945
|
-
(!i || i.nodeType !==
|
|
4993
|
+
(!i || i.nodeType !== Es) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Is(e, i, 0);
|
|
4946
4994
|
}
|
|
4947
|
-
function
|
|
4948
|
-
let r =
|
|
4995
|
+
function Is(e, t, n) {
|
|
4996
|
+
let r = Ms(e);
|
|
4949
4997
|
if (!r) return;
|
|
4950
4998
|
let i = e.ownerDocument.createRange();
|
|
4951
4999
|
i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
|
|
4952
5000
|
}
|
|
4953
|
-
function
|
|
5001
|
+
function Ls(e) {
|
|
4954
5002
|
let t = Jr(e.node.data, e.offset);
|
|
4955
5003
|
return t ? {
|
|
4956
5004
|
...t,
|
|
4957
5005
|
textNode: e.node
|
|
4958
5006
|
} : null;
|
|
4959
5007
|
}
|
|
4960
|
-
function
|
|
5008
|
+
function Rs(e, t, n, r) {
|
|
4961
5009
|
if (Yr(n) == null) return !1;
|
|
4962
5010
|
let i = t.textNode;
|
|
4963
5011
|
if (!e.contains(i)) return !1;
|
|
@@ -4965,31 +5013,31 @@ function Fs(e, t, n, r) {
|
|
|
4965
5013
|
if (!a || t.caret > i.data.length) return !1;
|
|
4966
5014
|
i.deleteData(t.at, t.caret - t.at);
|
|
4967
5015
|
let o = i.splitText(t.at);
|
|
4968
|
-
return a.insertBefore(
|
|
5016
|
+
return a.insertBefore(As(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Is(e, o, 1), !0;
|
|
4969
5017
|
}
|
|
4970
|
-
function
|
|
4971
|
-
let n =
|
|
5018
|
+
function zs(e, t) {
|
|
5019
|
+
let n = Ms(e);
|
|
4972
5020
|
if (!n || n.rangeCount === 0) return;
|
|
4973
5021
|
let r = n.getRangeAt(0);
|
|
4974
5022
|
if (!e.contains(r.commonAncestorContainer)) return;
|
|
4975
5023
|
r.deleteContents();
|
|
4976
5024
|
let { startContainer: i, startOffset: a } = r;
|
|
4977
|
-
if (i.nodeType ===
|
|
5025
|
+
if (i.nodeType === Es) {
|
|
4978
5026
|
let n = i;
|
|
4979
|
-
n.insertData(a, t),
|
|
5027
|
+
n.insertData(a, t), Is(e, n, a + t.length);
|
|
4980
5028
|
return;
|
|
4981
5029
|
}
|
|
4982
5030
|
let o = e.ownerDocument.createTextNode(t);
|
|
4983
|
-
r.insertNode(o),
|
|
5031
|
+
r.insertNode(o), Is(e, o, o.data.length);
|
|
4984
5032
|
}
|
|
4985
|
-
function
|
|
5033
|
+
function Bs(e, t) {
|
|
4986
5034
|
let n = e.ownerDocument, r = null, i = null, a = !0;
|
|
4987
5035
|
function o(t) {
|
|
4988
5036
|
let n = t.length === 0;
|
|
4989
5037
|
(n !== a || e.hasAttribute("data-empty") !== n) && (a = n, e.toggleAttribute("data-empty", n));
|
|
4990
5038
|
}
|
|
4991
5039
|
function s() {
|
|
4992
|
-
let n =
|
|
5040
|
+
let n = Os(e);
|
|
4993
5041
|
o(n), t.onChange(n);
|
|
4994
5042
|
}
|
|
4995
5043
|
function c(e) {
|
|
@@ -5005,7 +5053,7 @@ function Ls(e, t) {
|
|
|
5005
5053
|
c(null);
|
|
5006
5054
|
return;
|
|
5007
5055
|
}
|
|
5008
|
-
let n =
|
|
5056
|
+
let n = Ns(e), r = n ? Ls(n) : null;
|
|
5009
5057
|
if (r && i && r.textNode === i.node && r.at === i.at) {
|
|
5010
5058
|
c(null);
|
|
5011
5059
|
return;
|
|
@@ -5013,29 +5061,29 @@ function Ls(e, t) {
|
|
|
5013
5061
|
i = null, c(r);
|
|
5014
5062
|
}
|
|
5015
5063
|
function u(r) {
|
|
5016
|
-
e.replaceChildren(
|
|
5064
|
+
e.replaceChildren(js(n, r, t.chipClass)), o(Os(e)), i = null, c(null);
|
|
5017
5065
|
}
|
|
5018
5066
|
let d = () => {
|
|
5019
5067
|
s(), l();
|
|
5020
5068
|
}, f = () => l(), p = () => {
|
|
5021
|
-
|
|
5069
|
+
Fs(e), l();
|
|
5022
5070
|
}, m = (t) => {
|
|
5023
5071
|
let n = t.clipboardData?.getData("text/plain");
|
|
5024
|
-
t.preventDefault(), n && (
|
|
5072
|
+
t.preventDefault(), n && (zs(e, n.replace(/\r\n?/g, "\n")), s(), l());
|
|
5025
5073
|
}, h = (e) => {
|
|
5026
5074
|
e.preventDefault();
|
|
5027
5075
|
};
|
|
5028
5076
|
return e.addEventListener("input", d), e.addEventListener("keyup", f), e.addEventListener("mouseup", p), e.addEventListener("focus", p), e.addEventListener("paste", m), e.addEventListener("drop", h), u(t.initialValue ?? ""), {
|
|
5029
|
-
getValue: () =>
|
|
5077
|
+
getValue: () => Os(e),
|
|
5030
5078
|
setValue: u,
|
|
5031
5079
|
focus() {
|
|
5032
5080
|
e.focus();
|
|
5033
5081
|
let t = e.lastChild;
|
|
5034
|
-
t && (t.nodeType ===
|
|
5082
|
+
t && (t.nodeType === Es ? Is(e, t, t.data.length) : Is(e, e, e.childNodes.length));
|
|
5035
5083
|
},
|
|
5036
5084
|
insertMention(n) {
|
|
5037
|
-
let a =
|
|
5038
|
-
o &&
|
|
5085
|
+
let a = Ns(e), o = (a ? Ls(a) : null) ?? r;
|
|
5086
|
+
o && Rs(e, o, n, t.chipClass) && (s(), i = null, c(null));
|
|
5039
5087
|
},
|
|
5040
5088
|
syncTrigger: l,
|
|
5041
5089
|
clearTrigger: () => c(null),
|
|
@@ -5050,21 +5098,21 @@ function Ls(e, t) {
|
|
|
5050
5098
|
}
|
|
5051
5099
|
};
|
|
5052
5100
|
}
|
|
5053
|
-
var
|
|
5054
|
-
function
|
|
5055
|
-
if (
|
|
5101
|
+
var Vs = null;
|
|
5102
|
+
function Hs() {
|
|
5103
|
+
if (Vs) return Vs;
|
|
5056
5104
|
if (typeof document > "u") return "true";
|
|
5057
5105
|
let e = document.createElement("div");
|
|
5058
5106
|
try {
|
|
5059
|
-
e.contentEditable = "plaintext-only",
|
|
5107
|
+
e.contentEditable = "plaintext-only", Vs = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
|
|
5060
5108
|
} catch {
|
|
5061
|
-
|
|
5109
|
+
Vs = "true";
|
|
5062
5110
|
}
|
|
5063
|
-
return
|
|
5111
|
+
return Vs;
|
|
5064
5112
|
}
|
|
5065
5113
|
//#endregion
|
|
5066
5114
|
//#region src/runtime/ui/mentions.tsx
|
|
5067
|
-
function
|
|
5115
|
+
function Us({ body: e, mentions: t, trailing: n }) {
|
|
5068
5116
|
let r = it(() => new Set(t), [t]);
|
|
5069
5117
|
return /* @__PURE__ */ Q("p", {
|
|
5070
5118
|
class: "markup-comment-body",
|
|
@@ -5074,7 +5122,7 @@ function Bs({ body: e, mentions: t, trailing: n }) {
|
|
|
5074
5122
|
}, t) : /* @__PURE__ */ Q("span", { children: e.type === "mention" ? `@${e.name}` : e.value }, t)), n]
|
|
5075
5123
|
});
|
|
5076
5124
|
}
|
|
5077
|
-
function
|
|
5125
|
+
function Ws(e) {
|
|
5078
5126
|
let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = B(0), s = it(() => {
|
|
5079
5127
|
if (!n) return [];
|
|
5080
5128
|
let e = n.query.toLowerCase();
|
|
@@ -5102,7 +5150,7 @@ function Vs(e) {
|
|
|
5102
5150
|
handleKeyDown: c
|
|
5103
5151
|
};
|
|
5104
5152
|
}
|
|
5105
|
-
function
|
|
5153
|
+
function Gs({ items: e, highlight: t, setHighlight: n, onSelect: r }) {
|
|
5106
5154
|
return e.length === 0 ? null : /* @__PURE__ */ Q("ul", {
|
|
5107
5155
|
class: "markup-mention-picker",
|
|
5108
5156
|
role: "listbox",
|
|
@@ -5128,7 +5176,7 @@ function Hs({ items: e, highlight: t, setHighlight: n, onSelect: r }) {
|
|
|
5128
5176
|
}
|
|
5129
5177
|
//#endregion
|
|
5130
5178
|
//#region src/runtime/ui/mention-input.tsx
|
|
5131
|
-
function
|
|
5179
|
+
function Ks({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
|
|
5132
5180
|
let u = H(null), d = H(null), [f, p] = B(null), m = H(t);
|
|
5133
5181
|
m.current = t;
|
|
5134
5182
|
let h = H(r);
|
|
@@ -5137,7 +5185,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5137
5185
|
rt(() => {
|
|
5138
5186
|
let e = u.current;
|
|
5139
5187
|
if (!e) return;
|
|
5140
|
-
let t =
|
|
5188
|
+
let t = Bs(e, {
|
|
5141
5189
|
chipClass: "markup-mention-chip",
|
|
5142
5190
|
initialValue: g.current,
|
|
5143
5191
|
onChange: (e) => m.current(e),
|
|
@@ -5157,7 +5205,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5157
5205
|
let t = d.current;
|
|
5158
5206
|
t && t.getValue() !== e && t.setValue(e);
|
|
5159
5207
|
}, [e]);
|
|
5160
|
-
let _ =
|
|
5208
|
+
let _ = Ws({
|
|
5161
5209
|
members: r ?? [],
|
|
5162
5210
|
trigger: f,
|
|
5163
5211
|
onSelect: (e) => d.current?.insertMention(e),
|
|
@@ -5170,7 +5218,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5170
5218
|
"aria-label": i,
|
|
5171
5219
|
"aria-disabled": o || void 0,
|
|
5172
5220
|
class: Z("markup-mention-input", c),
|
|
5173
|
-
contentEditable: o ? "false" :
|
|
5221
|
+
contentEditable: o ? "false" : Hs(),
|
|
5174
5222
|
"data-placeholder": a,
|
|
5175
5223
|
tabIndex: o ? -1 : 0,
|
|
5176
5224
|
onKeyDown: (e) => {
|
|
@@ -5179,7 +5227,7 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5179
5227
|
onBlur: () => {
|
|
5180
5228
|
setTimeout(() => d.current?.clearTrigger(), 120);
|
|
5181
5229
|
}
|
|
5182
|
-
}), _.isOpen ? /* @__PURE__ */ Q(
|
|
5230
|
+
}), _.isOpen ? /* @__PURE__ */ Q(Gs, {
|
|
5183
5231
|
items: _.items,
|
|
5184
5232
|
highlight: _.highlight,
|
|
5185
5233
|
setHighlight: _.setHighlight,
|
|
@@ -5188,48 +5236,54 @@ function Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
|
|
|
5188
5236
|
}
|
|
5189
5237
|
//#endregion
|
|
5190
5238
|
//#region src/runtime/ui/composer.tsx
|
|
5191
|
-
var
|
|
5192
|
-
function
|
|
5193
|
-
let [
|
|
5239
|
+
var qs = 4e3;
|
|
5240
|
+
function Js({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
|
|
5241
|
+
let [l, u] = B(""), d = H(null), f = H(!1);
|
|
5194
5242
|
V(() => {
|
|
5195
|
-
|
|
5196
|
-
}, [
|
|
5197
|
-
|
|
5198
|
-
|
|
5243
|
+
f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
|
|
5244
|
+
}, [
|
|
5245
|
+
i,
|
|
5246
|
+
a,
|
|
5247
|
+
s
|
|
5248
|
+
]);
|
|
5249
|
+
let p = qs - l.length, m = p < 0;
|
|
5250
|
+
function h(e) {
|
|
5199
5251
|
e?.preventDefault();
|
|
5200
|
-
let t =
|
|
5201
|
-
!t || i ||
|
|
5252
|
+
let t = l.trim();
|
|
5253
|
+
!t || i || m || o(t);
|
|
5202
5254
|
}
|
|
5203
|
-
function
|
|
5204
|
-
(e.metaKey || e.ctrlKey) && e.key === "Enter" &&
|
|
5255
|
+
function g(e) {
|
|
5256
|
+
(e.metaKey || e.ctrlKey) && e.key === "Enter" && h(e);
|
|
5205
5257
|
}
|
|
5206
|
-
let
|
|
5207
|
-
function
|
|
5258
|
+
let _ = l.length > 0, v = Wo();
|
|
5259
|
+
function y(e) {
|
|
5208
5260
|
return /* @__PURE__ */ Q("button", {
|
|
5209
5261
|
type: "submit",
|
|
5210
5262
|
class: "markup-btn markup-btn-primary",
|
|
5211
|
-
disabled: i || !
|
|
5263
|
+
disabled: i || !l.trim() || m,
|
|
5212
5264
|
"aria-label": i ? "Sending…" : n,
|
|
5213
5265
|
title: i ? "Sending…" : n,
|
|
5214
5266
|
tabIndex: e,
|
|
5215
|
-
children: /* @__PURE__ */ Q(
|
|
5267
|
+
children: /* @__PURE__ */ Q(Qo, { size: 14 })
|
|
5216
5268
|
});
|
|
5217
5269
|
}
|
|
5218
5270
|
return /* @__PURE__ */ Q("form", {
|
|
5219
|
-
class: Z("markup-composer",
|
|
5220
|
-
onSubmit:
|
|
5271
|
+
class: Z("markup-composer", _ && "is-filled"),
|
|
5272
|
+
onSubmit: h,
|
|
5221
5273
|
children: [
|
|
5222
|
-
/* @__PURE__ */ Q(
|
|
5274
|
+
/* @__PURE__ */ Q(Ks, {
|
|
5223
5275
|
class: "markup-composer-input",
|
|
5224
5276
|
label: e,
|
|
5225
5277
|
placeholder: t,
|
|
5226
|
-
value:
|
|
5227
|
-
onChange:
|
|
5228
|
-
|
|
5229
|
-
|
|
5278
|
+
value: l,
|
|
5279
|
+
onChange: (e) => {
|
|
5280
|
+
u(e), s?.(e.trim().length > 0);
|
|
5281
|
+
},
|
|
5282
|
+
onKeyDown: g,
|
|
5283
|
+
members: c,
|
|
5230
5284
|
disabled: i,
|
|
5231
5285
|
autoFocus: r,
|
|
5232
|
-
handle:
|
|
5286
|
+
handle: d
|
|
5233
5287
|
}),
|
|
5234
5288
|
/* @__PURE__ */ Q("div", {
|
|
5235
5289
|
class: "markup-composer-footer-wrap",
|
|
@@ -5240,17 +5294,17 @@ function Gs({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
5240
5294
|
children: a ? /* @__PURE__ */ Q("span", {
|
|
5241
5295
|
class: "markup-composer-error",
|
|
5242
5296
|
children: a
|
|
5243
|
-
}) :
|
|
5297
|
+
}) : m ? /* @__PURE__ */ Q("span", {
|
|
5244
5298
|
class: "markup-composer-error",
|
|
5245
|
-
children: [Math.abs(
|
|
5299
|
+
children: [Math.abs(p), " too long"]
|
|
5246
5300
|
}) : /* @__PURE__ */ Q(S, { children: [
|
|
5247
5301
|
/* @__PURE__ */ Q("kbd", {
|
|
5248
5302
|
class: "markup-kbd is-inline",
|
|
5249
|
-
children:
|
|
5303
|
+
children: v.mod
|
|
5250
5304
|
}),
|
|
5251
5305
|
/* @__PURE__ */ Q("kbd", {
|
|
5252
5306
|
class: "markup-kbd is-inline",
|
|
5253
|
-
children:
|
|
5307
|
+
children: v.enter
|
|
5254
5308
|
}),
|
|
5255
5309
|
/* @__PURE__ */ Q("span", {
|
|
5256
5310
|
class: "markup-composer-hint-label",
|
|
@@ -5259,177 +5313,243 @@ function Gs({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
|
|
|
5259
5313
|
] })
|
|
5260
5314
|
}), /* @__PURE__ */ Q("div", {
|
|
5261
5315
|
class: "markup-composer-actions",
|
|
5262
|
-
children:
|
|
5316
|
+
children: y(_ ? void 0 : -1)
|
|
5263
5317
|
})]
|
|
5264
5318
|
})
|
|
5265
5319
|
}),
|
|
5266
5320
|
/* @__PURE__ */ Q("span", {
|
|
5267
5321
|
class: "markup-composer-actions-empty",
|
|
5268
|
-
"aria-hidden":
|
|
5269
|
-
children:
|
|
5322
|
+
"aria-hidden": _ || void 0,
|
|
5323
|
+
children: y(_ ? -1 : void 0)
|
|
5270
5324
|
})
|
|
5271
5325
|
]
|
|
5272
5326
|
});
|
|
5273
5327
|
}
|
|
5274
5328
|
//#endregion
|
|
5275
5329
|
//#region src/runtime/ui/new-thread-popover.tsx
|
|
5276
|
-
|
|
5330
|
+
var Ys = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
|
|
5331
|
+
function Xs({ pageX: e, pageY: t, authorName: n, isVerified: r, isIdentityResolving: i, isSigningIn: a, isPending: o, error: s, screenshot: c, isScreenshotCapturing: l, screenshotFailed: u, screenshotRedactedCount: d, screenshotRedactedSelectors: f, members: p = [], onAuthor: m, onSignIn: h, onSubmit: g, onClose: _ }) {
|
|
5277
5332
|
let v = H(null);
|
|
5278
|
-
|
|
5279
|
-
let
|
|
5333
|
+
bs(v, !0);
|
|
5334
|
+
let y = H(!1), [b, x] = B(!1), C = U(() => {
|
|
5335
|
+
y.current ? x(!0) : _();
|
|
5336
|
+
}, [_]), w = U(() => {
|
|
5337
|
+
x(!1), v.current?.querySelector(".markup-mention-input")?.focus();
|
|
5338
|
+
}, []), [T, E] = B(!1), [D, O] = B(!1), ee = xs(c), [k, A] = B(null), { onPointerDown: j, isDragging: te } = _s({
|
|
5280
5339
|
targetRef: v,
|
|
5281
5340
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
5282
|
-
onMove:
|
|
5341
|
+
onMove: A
|
|
5283
5342
|
});
|
|
5284
5343
|
V(() => {
|
|
5285
5344
|
let e = v.current;
|
|
5286
|
-
if (!e)
|
|
5287
|
-
if (typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
5345
|
+
if (e && typeof e.showPopover == "function" && !e.matches(":popover-open")) try {
|
|
5288
5346
|
e.showPopover();
|
|
5289
5347
|
} catch {}
|
|
5290
|
-
|
|
5291
|
-
|
|
5348
|
+
}, []), V(() => {
|
|
5349
|
+
let e = v.current;
|
|
5350
|
+
if (!e) return;
|
|
5351
|
+
function t(t) {
|
|
5352
|
+
if (!t.composedPath().includes(e)) {
|
|
5353
|
+
if (b) {
|
|
5354
|
+
t.preventDefault(), t.stopPropagation();
|
|
5355
|
+
return;
|
|
5356
|
+
}
|
|
5357
|
+
y.current && (t.preventDefault(), t.stopPropagation()), C();
|
|
5358
|
+
}
|
|
5292
5359
|
}
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5360
|
+
function n(e) {
|
|
5361
|
+
e.key !== "Escape" || e.defaultPrevented || (e.preventDefault(), b ? w() : C());
|
|
5362
|
+
}
|
|
5363
|
+
return document.addEventListener("click", t, !0), document.addEventListener("keydown", n), () => {
|
|
5364
|
+
document.removeEventListener("click", t, !0), document.removeEventListener("keydown", n);
|
|
5365
|
+
};
|
|
5366
|
+
}, [
|
|
5367
|
+
b,
|
|
5368
|
+
C,
|
|
5369
|
+
w
|
|
5370
|
+
]), V(() => {
|
|
5371
|
+
b && v.current?.querySelector(".markup-discard-confirm-keep")?.focus();
|
|
5372
|
+
}, [b]);
|
|
5373
|
+
let M = Zs(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), ne = Zs(t - window.scrollY - 16, 12, window.innerHeight - 220), re = typeof window < "u" ? window.location.href : "", ie = c != null, ae = l || ie || u, oe = T && ie;
|
|
5296
5374
|
return /* @__PURE__ */ Q("div", {
|
|
5297
5375
|
ref: v,
|
|
5298
|
-
class: Z("markup-popover",
|
|
5299
|
-
popover: "
|
|
5376
|
+
class: Z("markup-popover", k && "is-floating", te && "is-dragging"),
|
|
5377
|
+
popover: "manual",
|
|
5300
5378
|
style: {
|
|
5301
|
-
"--markup-pop-x": `${
|
|
5302
|
-
"--markup-pop-y": `${
|
|
5379
|
+
"--markup-pop-x": `${k?.left ?? M}px`,
|
|
5380
|
+
"--markup-pop-y": `${k?.top ?? ne}px`
|
|
5303
5381
|
},
|
|
5304
5382
|
role: "dialog",
|
|
5305
5383
|
"aria-label": "New markup",
|
|
5306
|
-
children: [
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
/* @__PURE__ */ Q("span", {
|
|
5335
|
-
class: "markup-popover-name",
|
|
5336
|
-
children: n
|
|
5337
|
-
}),
|
|
5338
|
-
r ? /* @__PURE__ */ Q("span", {
|
|
5339
|
-
class: "markup-comment-badge",
|
|
5340
|
-
children: "team"
|
|
5341
|
-
}) : null
|
|
5342
|
-
]
|
|
5343
|
-
}),
|
|
5344
|
-
/* @__PURE__ */ Q(Gs, {
|
|
5345
|
-
label: "Feedback",
|
|
5346
|
-
placeholder: "What's wrong, missing, or worth noting?",
|
|
5347
|
-
submitLabel: "Post markup",
|
|
5348
|
-
isPending: o,
|
|
5349
|
-
error: s,
|
|
5350
|
-
onSubmit: (e) => g(e, y && j),
|
|
5351
|
-
members: p
|
|
5352
|
-
}),
|
|
5353
|
-
te ? /* @__PURE__ */ Q("div", {
|
|
5354
|
-
class: Z("markup-screenshot-row", u && "is-failed"),
|
|
5355
|
-
children: [l ? /* @__PURE__ */ Q("span", {
|
|
5356
|
-
class: "markup-screenshot-status",
|
|
5357
|
-
children: [
|
|
5358
|
-
/* @__PURE__ */ Q("input", {
|
|
5359
|
-
type: "checkbox",
|
|
5360
|
-
class: "markup-screenshot-checkbox",
|
|
5361
|
-
disabled: !0
|
|
5362
|
-
}),
|
|
5363
|
-
/* @__PURE__ */ Q(Jo, { size: 12 }),
|
|
5364
|
-
/* @__PURE__ */ Q("span", { children: "Capturing…" })
|
|
5365
|
-
]
|
|
5366
|
-
}) : u ? /* @__PURE__ */ Q("span", {
|
|
5367
|
-
class: "markup-screenshot-status",
|
|
5368
|
-
title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
|
|
5369
|
-
children: [/* @__PURE__ */ Q(Jo, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
|
|
5370
|
-
}) : /* @__PURE__ */ Q("label", {
|
|
5371
|
-
class: "markup-screenshot-toggle",
|
|
5384
|
+
children: [
|
|
5385
|
+
/* @__PURE__ */ Q("header", {
|
|
5386
|
+
class: "markup-popover-header",
|
|
5387
|
+
onPointerDown: j,
|
|
5388
|
+
children: [/* @__PURE__ */ Q("span", {
|
|
5389
|
+
class: "markup-popover-title",
|
|
5390
|
+
title: re,
|
|
5391
|
+
children: "New comment"
|
|
5392
|
+
}), /* @__PURE__ */ Q("button", {
|
|
5393
|
+
type: "button",
|
|
5394
|
+
class: "markup-icon-btn",
|
|
5395
|
+
"aria-label": "Discard pin",
|
|
5396
|
+
onClick: C,
|
|
5397
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
5398
|
+
})]
|
|
5399
|
+
}),
|
|
5400
|
+
n == null ? /* @__PURE__ */ Q(Ss, {
|
|
5401
|
+
isPending: o,
|
|
5402
|
+
isConnecting: i,
|
|
5403
|
+
isSigningIn: a,
|
|
5404
|
+
onSubmit: m,
|
|
5405
|
+
onCancel: _,
|
|
5406
|
+
onSignIn: h
|
|
5407
|
+
}) : /* @__PURE__ */ Q("div", {
|
|
5408
|
+
class: "markup-popover-body",
|
|
5409
|
+
children: [
|
|
5410
|
+
/* @__PURE__ */ Q("p", {
|
|
5411
|
+
class: "markup-popover-byline",
|
|
5372
5412
|
children: [
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
class: "markup-
|
|
5376
|
-
|
|
5377
|
-
onChange: (e) => b(e.currentTarget.checked)
|
|
5413
|
+
"posting as ",
|
|
5414
|
+
/* @__PURE__ */ Q("span", {
|
|
5415
|
+
class: "markup-popover-name",
|
|
5416
|
+
children: n
|
|
5378
5417
|
}),
|
|
5379
|
-
/* @__PURE__ */ Q(
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
class: "markup-screenshot-thumb",
|
|
5383
|
-
src: w,
|
|
5384
|
-
alt: "Screenshot preview"
|
|
5418
|
+
r ? /* @__PURE__ */ Q("span", {
|
|
5419
|
+
class: "markup-comment-badge",
|
|
5420
|
+
children: "team"
|
|
5385
5421
|
}) : null
|
|
5386
5422
|
]
|
|
5387
|
-
}),
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
|
|
5403
|
-
|
|
5423
|
+
}),
|
|
5424
|
+
/* @__PURE__ */ Q(Js, {
|
|
5425
|
+
label: "Feedback",
|
|
5426
|
+
placeholder: "What's wrong, missing, or worth noting?",
|
|
5427
|
+
submitLabel: "Post markup",
|
|
5428
|
+
isPending: o,
|
|
5429
|
+
error: s,
|
|
5430
|
+
onSubmit: (e) => g(e, T && ie),
|
|
5431
|
+
onDirtyChange: (e) => {
|
|
5432
|
+
y.current = e;
|
|
5433
|
+
},
|
|
5434
|
+
members: p
|
|
5435
|
+
}),
|
|
5436
|
+
ae ? /* @__PURE__ */ Q("div", {
|
|
5437
|
+
class: Z("markup-screenshot-row", u && "is-failed", oe && "is-attached"),
|
|
5438
|
+
children: [/* @__PURE__ */ Q("div", {
|
|
5439
|
+
class: "markup-screenshot-row-head",
|
|
5440
|
+
children: [l ? /* @__PURE__ */ Q("span", {
|
|
5441
|
+
class: "markup-screenshot-status",
|
|
5442
|
+
children: [
|
|
5443
|
+
/* @__PURE__ */ Q("input", {
|
|
5444
|
+
type: "checkbox",
|
|
5445
|
+
class: "markup-screenshot-checkbox",
|
|
5446
|
+
disabled: !0
|
|
5447
|
+
}),
|
|
5448
|
+
/* @__PURE__ */ Q(Zo, { size: 12 }),
|
|
5449
|
+
/* @__PURE__ */ Q("span", { children: "Capturing…" })
|
|
5450
|
+
]
|
|
5451
|
+
}) : u ? /* @__PURE__ */ Q("span", {
|
|
5452
|
+
class: "markup-screenshot-status",
|
|
5453
|
+
title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
|
|
5454
|
+
children: [/* @__PURE__ */ Q(Zo, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
|
|
5455
|
+
}) : /* @__PURE__ */ Q("label", {
|
|
5456
|
+
class: "markup-screenshot-toggle",
|
|
5457
|
+
children: [
|
|
5458
|
+
/* @__PURE__ */ Q("input", {
|
|
5459
|
+
type: "checkbox",
|
|
5460
|
+
class: "markup-screenshot-checkbox",
|
|
5461
|
+
checked: T,
|
|
5462
|
+
onChange: (e) => E(e.currentTarget.checked)
|
|
5463
|
+
}),
|
|
5464
|
+
/* @__PURE__ */ Q(Zo, { size: 12 }),
|
|
5465
|
+
/* @__PURE__ */ Q("span", { children: "Attach screenshot" }),
|
|
5466
|
+
oe && ee ? /* @__PURE__ */ Q("img", {
|
|
5467
|
+
class: "markup-screenshot-thumb",
|
|
5468
|
+
src: ee,
|
|
5469
|
+
alt: "Screenshot preview"
|
|
5470
|
+
}) : null
|
|
5471
|
+
]
|
|
5472
|
+
}), oe && d > 0 ? /* @__PURE__ */ Q("button", {
|
|
5473
|
+
type: "button",
|
|
5474
|
+
class: "markup-screenshot-redacted-chip",
|
|
5475
|
+
"aria-expanded": D,
|
|
5476
|
+
onClick: () => O((e) => !e),
|
|
5477
|
+
children: [
|
|
5478
|
+
/* @__PURE__ */ Q("em", {
|
|
5479
|
+
class: "markup-screenshot-redacted-arrow",
|
|
5480
|
+
children: D ? "▾" : "▸"
|
|
5481
|
+
}),
|
|
5482
|
+
d,
|
|
5483
|
+
" ",
|
|
5484
|
+
d === 1 ? "field" : "fields",
|
|
5485
|
+
" ",
|
|
5486
|
+
"redacted"
|
|
5487
|
+
]
|
|
5488
|
+
}) : null]
|
|
5489
|
+
}), oe ? /* @__PURE__ */ Q(S, { children: [D && d > 0 ? /* @__PURE__ */ Q("div", {
|
|
5404
5490
|
class: "markup-screenshot-redacted-list",
|
|
5405
5491
|
children: f.map((e) => /* @__PURE__ */ Q("code", {
|
|
5406
5492
|
class: "markup-screenshot-redacted-selector",
|
|
5407
5493
|
children: e
|
|
5408
5494
|
}, e))
|
|
5409
|
-
}) : null
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5495
|
+
}) : null, /* @__PURE__ */ Q("p", {
|
|
5496
|
+
class: "markup-screenshot-help",
|
|
5497
|
+
children: [
|
|
5498
|
+
"Password and credit-card fields are blacked out automatically.",
|
|
5499
|
+
" ",
|
|
5500
|
+
/* @__PURE__ */ Q("a", {
|
|
5501
|
+
class: "markup-screenshot-help-link",
|
|
5502
|
+
href: Ys,
|
|
5503
|
+
target: "_blank",
|
|
5504
|
+
rel: "noopener noreferrer",
|
|
5505
|
+
children: "More info here."
|
|
5506
|
+
})
|
|
5507
|
+
]
|
|
5508
|
+
})] }) : null]
|
|
5509
|
+
}) : null
|
|
5510
|
+
]
|
|
5511
|
+
}),
|
|
5512
|
+
b ? /* @__PURE__ */ Q("div", {
|
|
5513
|
+
class: "markup-discard-confirm",
|
|
5514
|
+
role: "alertdialog",
|
|
5515
|
+
"aria-labelledby": "markup-discard-confirm-title",
|
|
5516
|
+
"aria-describedby": "markup-discard-confirm-desc",
|
|
5517
|
+
children: [
|
|
5518
|
+
/* @__PURE__ */ Q("p", {
|
|
5519
|
+
id: "markup-discard-confirm-title",
|
|
5520
|
+
class: "markup-discard-confirm-title",
|
|
5521
|
+
children: "Discard this comment?"
|
|
5522
|
+
}),
|
|
5523
|
+
/* @__PURE__ */ Q("p", {
|
|
5524
|
+
id: "markup-discard-confirm-desc",
|
|
5525
|
+
class: "markup-discard-confirm-desc",
|
|
5526
|
+
children: "What you wrote will be lost."
|
|
5527
|
+
}),
|
|
5528
|
+
/* @__PURE__ */ Q("div", {
|
|
5529
|
+
class: "markup-discard-confirm-actions",
|
|
5530
|
+
children: [/* @__PURE__ */ Q("button", {
|
|
5531
|
+
type: "button",
|
|
5532
|
+
class: "markup-btn markup-btn-primary markup-discard-confirm-keep",
|
|
5533
|
+
onClick: w,
|
|
5534
|
+
children: "Keep editing"
|
|
5535
|
+
}), /* @__PURE__ */ Q("button", {
|
|
5536
|
+
type: "button",
|
|
5537
|
+
class: "markup-btn markup-btn-danger",
|
|
5538
|
+
onClick: _,
|
|
5539
|
+
children: "Discard"
|
|
5540
|
+
})]
|
|
5541
|
+
})
|
|
5542
|
+
]
|
|
5543
|
+
}) : null
|
|
5544
|
+
]
|
|
5425
5545
|
});
|
|
5426
5546
|
}
|
|
5427
|
-
function
|
|
5547
|
+
function Zs(e, t, n) {
|
|
5428
5548
|
return Math.max(t, Math.min(n, e));
|
|
5429
5549
|
}
|
|
5430
5550
|
//#endregion
|
|
5431
5551
|
//#region src/runtime/ui/notifications-panel.tsx
|
|
5432
|
-
function
|
|
5552
|
+
function Qs({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMarkAllRead: a, isMarkingAll: o }) {
|
|
5433
5553
|
let s = e.some((e) => e.readAt == null);
|
|
5434
5554
|
return /* @__PURE__ */ Q("div", {
|
|
5435
5555
|
class: "markup-notifications-panel",
|
|
@@ -5444,7 +5564,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5444
5564
|
title: "Back to menu",
|
|
5445
5565
|
"aria-label": "Back to menu",
|
|
5446
5566
|
onClick: r,
|
|
5447
|
-
children: /* @__PURE__ */ Q(
|
|
5567
|
+
children: /* @__PURE__ */ Q(Jo, { size: 16 })
|
|
5448
5568
|
}),
|
|
5449
5569
|
/* @__PURE__ */ Q("span", {
|
|
5450
5570
|
class: "markup-eyebrow",
|
|
@@ -5501,7 +5621,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5501
5621
|
role: "img",
|
|
5502
5622
|
"aria-label": "Written by an AI agent",
|
|
5503
5623
|
title: "Written by an AI agent on this person's behalf",
|
|
5504
|
-
children: /* @__PURE__ */ Q(
|
|
5624
|
+
children: /* @__PURE__ */ Q(ps, { size: 11 })
|
|
5505
5625
|
}) : null,
|
|
5506
5626
|
/* @__PURE__ */ Q("span", {
|
|
5507
5627
|
class: "markup-notifications-panel-sep",
|
|
@@ -5509,7 +5629,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5509
5629
|
}),
|
|
5510
5630
|
/* @__PURE__ */ Q("span", {
|
|
5511
5631
|
class: "markup-notifications-panel-time",
|
|
5512
|
-
children:
|
|
5632
|
+
children: $s(e.createdAt)
|
|
5513
5633
|
})
|
|
5514
5634
|
]
|
|
5515
5635
|
}),
|
|
@@ -5538,7 +5658,7 @@ function Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
|
|
|
5538
5658
|
})]
|
|
5539
5659
|
});
|
|
5540
5660
|
}
|
|
5541
|
-
function
|
|
5661
|
+
function $s(e) {
|
|
5542
5662
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
5543
5663
|
if (n < 60) return "just now";
|
|
5544
5664
|
let r = Math.floor(n / 60);
|
|
@@ -5550,7 +5670,7 @@ function Ys(e) {
|
|
|
5550
5670
|
}
|
|
5551
5671
|
//#endregion
|
|
5552
5672
|
//#region src/runtime/use-theme.ts
|
|
5553
|
-
function
|
|
5673
|
+
function ec() {
|
|
5554
5674
|
let [, e] = B(0);
|
|
5555
5675
|
return V(() => He(() => e((e) => e + 1)), []), {
|
|
5556
5676
|
mode: ze(),
|
|
@@ -5560,8 +5680,8 @@ function Xs() {
|
|
|
5560
5680
|
}
|
|
5561
5681
|
//#endregion
|
|
5562
5682
|
//#region src/runtime/ui/overflow-menu.tsx
|
|
5563
|
-
function
|
|
5564
|
-
let [u, d] = B(!1), f = H(null), p =
|
|
5683
|
+
function tc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, onOpenPrivacy: a, onOpenShortcuts: o, onHideForSession: s, version: c, dashboardUrl: l }) {
|
|
5684
|
+
let [u, d] = B(!1), f = H(null), p = ec();
|
|
5565
5685
|
V(() => {
|
|
5566
5686
|
if (!u) return;
|
|
5567
5687
|
function e(e) {
|
|
@@ -5575,7 +5695,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5575
5695
|
document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
|
|
5576
5696
|
};
|
|
5577
5697
|
}, [u]);
|
|
5578
|
-
let m = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: h } =
|
|
5698
|
+
let m = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: h } = Wo();
|
|
5579
5699
|
return /* @__PURE__ */ Q("div", {
|
|
5580
5700
|
ref: f,
|
|
5581
5701
|
style: {
|
|
@@ -5594,7 +5714,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5594
5714
|
onClick: (e) => {
|
|
5595
5715
|
e.preventDefault(), e.stopPropagation(), d((e) => !e);
|
|
5596
5716
|
},
|
|
5597
|
-
children: /* @__PURE__ */ Q(
|
|
5717
|
+
children: /* @__PURE__ */ Q(is, { size: 16 })
|
|
5598
5718
|
}), u ? /* @__PURE__ */ Q("div", {
|
|
5599
5719
|
class: Z("markup-pop", m),
|
|
5600
5720
|
"data-pop": "overflow",
|
|
@@ -5618,7 +5738,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5618
5738
|
title: "Light",
|
|
5619
5739
|
class: Z(p.mode === "light" && "is-on"),
|
|
5620
5740
|
onClick: () => p.set("light"),
|
|
5621
|
-
children: /* @__PURE__ */ Q(
|
|
5741
|
+
children: /* @__PURE__ */ Q(as, { size: 14 })
|
|
5622
5742
|
}),
|
|
5623
5743
|
/* @__PURE__ */ Q("button", {
|
|
5624
5744
|
type: "button",
|
|
@@ -5628,7 +5748,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5628
5748
|
title: "Dark",
|
|
5629
5749
|
class: Z(p.mode === "dark" && "is-on"),
|
|
5630
5750
|
onClick: () => p.set("dark"),
|
|
5631
|
-
children: /* @__PURE__ */ Q(
|
|
5751
|
+
children: /* @__PURE__ */ Q(os, { size: 14 })
|
|
5632
5752
|
}),
|
|
5633
5753
|
/* @__PURE__ */ Q("button", {
|
|
5634
5754
|
type: "button",
|
|
@@ -5638,7 +5758,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5638
5758
|
title: `Auto, currently ${p.resolved}`,
|
|
5639
5759
|
class: Z(p.mode === "auto" && "is-on"),
|
|
5640
5760
|
onClick: () => p.set("auto"),
|
|
5641
|
-
children: /* @__PURE__ */ Q(
|
|
5761
|
+
children: /* @__PURE__ */ Q(ss, { size: 14 })
|
|
5642
5762
|
})
|
|
5643
5763
|
]
|
|
5644
5764
|
})]
|
|
@@ -5661,7 +5781,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5661
5781
|
title: "Bottom left",
|
|
5662
5782
|
class: Z(e === "bottom-left" && "is-on"),
|
|
5663
5783
|
onClick: () => t("bottom-left"),
|
|
5664
|
-
children: /* @__PURE__ */ Q(
|
|
5784
|
+
children: /* @__PURE__ */ Q(nc, { side: "left" })
|
|
5665
5785
|
}),
|
|
5666
5786
|
/* @__PURE__ */ Q("button", {
|
|
5667
5787
|
type: "button",
|
|
@@ -5671,7 +5791,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5671
5791
|
title: "Bottom center",
|
|
5672
5792
|
class: Z(e === "bottom-center" && "is-on"),
|
|
5673
5793
|
onClick: () => t("bottom-center"),
|
|
5674
|
-
children: /* @__PURE__ */ Q(
|
|
5794
|
+
children: /* @__PURE__ */ Q(nc, { side: "center" })
|
|
5675
5795
|
}),
|
|
5676
5796
|
/* @__PURE__ */ Q("button", {
|
|
5677
5797
|
type: "button",
|
|
@@ -5681,7 +5801,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5681
5801
|
title: "Bottom right",
|
|
5682
5802
|
class: Z(e === "bottom-right" && "is-on"),
|
|
5683
5803
|
onClick: () => t("bottom-right"),
|
|
5684
|
-
children: /* @__PURE__ */ Q(
|
|
5804
|
+
children: /* @__PURE__ */ Q(nc, { side: "right" })
|
|
5685
5805
|
})
|
|
5686
5806
|
]
|
|
5687
5807
|
})]
|
|
@@ -5703,7 +5823,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5703
5823
|
children: [
|
|
5704
5824
|
/* @__PURE__ */ Q("span", {
|
|
5705
5825
|
class: "ic",
|
|
5706
|
-
children: /* @__PURE__ */ Q(
|
|
5826
|
+
children: /* @__PURE__ */ Q(rc, {})
|
|
5707
5827
|
}),
|
|
5708
5828
|
/* @__PURE__ */ Q("span", {
|
|
5709
5829
|
class: "lbl",
|
|
@@ -5727,7 +5847,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5727
5847
|
},
|
|
5728
5848
|
children: [/* @__PURE__ */ Q("span", {
|
|
5729
5849
|
class: "ic",
|
|
5730
|
-
children: /* @__PURE__ */ Q(
|
|
5850
|
+
children: /* @__PURE__ */ Q(cs, { size: 16 })
|
|
5731
5851
|
}), /* @__PURE__ */ Q("span", {
|
|
5732
5852
|
class: "lbl",
|
|
5733
5853
|
children: "Privacy & data"
|
|
@@ -5742,7 +5862,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5742
5862
|
},
|
|
5743
5863
|
children: [/* @__PURE__ */ Q("span", {
|
|
5744
5864
|
class: "ic",
|
|
5745
|
-
children: /* @__PURE__ */ Q(
|
|
5865
|
+
children: /* @__PURE__ */ Q(ls, { size: 16 })
|
|
5746
5866
|
}), /* @__PURE__ */ Q("span", {
|
|
5747
5867
|
class: "lbl",
|
|
5748
5868
|
children: "Keyboard shortcuts"
|
|
@@ -5759,7 +5879,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5759
5879
|
children: [
|
|
5760
5880
|
/* @__PURE__ */ Q("span", {
|
|
5761
5881
|
class: "ic",
|
|
5762
|
-
children: /* @__PURE__ */ Q(
|
|
5882
|
+
children: /* @__PURE__ */ Q(ic, {})
|
|
5763
5883
|
}),
|
|
5764
5884
|
/* @__PURE__ */ Q("span", {
|
|
5765
5885
|
class: "lbl",
|
|
@@ -5777,7 +5897,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5777
5897
|
target: "_blank",
|
|
5778
5898
|
rel: "noopener noreferrer",
|
|
5779
5899
|
children: [
|
|
5780
|
-
/* @__PURE__ */ Q(
|
|
5900
|
+
/* @__PURE__ */ Q(Ko, { size: 12 }),
|
|
5781
5901
|
/* @__PURE__ */ Q("span", { children: "Powered by Markup" }),
|
|
5782
5902
|
/* @__PURE__ */ Q("span", {
|
|
5783
5903
|
class: "ver",
|
|
@@ -5789,7 +5909,7 @@ function Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
|
|
|
5789
5909
|
}) : null]
|
|
5790
5910
|
});
|
|
5791
5911
|
}
|
|
5792
|
-
function
|
|
5912
|
+
function nc({ side: e }) {
|
|
5793
5913
|
return /* @__PURE__ */ Q("svg", {
|
|
5794
5914
|
width: 14,
|
|
5795
5915
|
height: 14,
|
|
@@ -5815,7 +5935,7 @@ function Qs({ side: e }) {
|
|
|
5815
5935
|
})]
|
|
5816
5936
|
});
|
|
5817
5937
|
}
|
|
5818
|
-
function
|
|
5938
|
+
function rc() {
|
|
5819
5939
|
return /* @__PURE__ */ Q("svg", {
|
|
5820
5940
|
width: 16,
|
|
5821
5941
|
height: 16,
|
|
@@ -5833,7 +5953,7 @@ function $s() {
|
|
|
5833
5953
|
})]
|
|
5834
5954
|
});
|
|
5835
5955
|
}
|
|
5836
|
-
function
|
|
5956
|
+
function ic() {
|
|
5837
5957
|
return /* @__PURE__ */ Q("svg", {
|
|
5838
5958
|
width: 16,
|
|
5839
5959
|
height: 16,
|
|
@@ -5854,7 +5974,7 @@ function ec() {
|
|
|
5854
5974
|
}
|
|
5855
5975
|
//#endregion
|
|
5856
5976
|
//#region src/runtime/ui/panel-popover.tsx
|
|
5857
|
-
function
|
|
5977
|
+
function ac({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i, children: a }) {
|
|
5858
5978
|
let o = H(null);
|
|
5859
5979
|
return V(() => {
|
|
5860
5980
|
function e(e) {
|
|
@@ -5884,7 +6004,7 @@ function tc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i,
|
|
|
5884
6004
|
}
|
|
5885
6005
|
//#endregion
|
|
5886
6006
|
//#region src/runtime/ui/pin.tsx
|
|
5887
|
-
function
|
|
6007
|
+
function oc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, onClick: a }) {
|
|
5888
6008
|
let o = t - window.scrollY, s = e - window.scrollX;
|
|
5889
6009
|
return /* @__PURE__ */ Q("button", {
|
|
5890
6010
|
type: "button",
|
|
@@ -5904,7 +6024,7 @@ function nc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, onClic
|
|
|
5904
6024
|
})
|
|
5905
6025
|
});
|
|
5906
6026
|
}
|
|
5907
|
-
function
|
|
6027
|
+
function sc({ pageX: e, pageY: t }) {
|
|
5908
6028
|
let n = t - window.scrollY, r = e - window.scrollX;
|
|
5909
6029
|
return /* @__PURE__ */ Q("div", {
|
|
5910
6030
|
class: "markup-pin markup-pin-ghost is-anchor",
|
|
@@ -5921,7 +6041,7 @@ function rc({ pageX: e, pageY: t }) {
|
|
|
5921
6041
|
}
|
|
5922
6042
|
//#endregion
|
|
5923
6043
|
//#region src/runtime/ui/placement-overlay.tsx
|
|
5924
|
-
function
|
|
6044
|
+
function cc({ onPlace: e, onCancel: t }) {
|
|
5925
6045
|
rt(() => {
|
|
5926
6046
|
function e(e) {
|
|
5927
6047
|
e.key === "Escape" && t();
|
|
@@ -5947,8 +6067,8 @@ function ic({ onPlace: e, onCancel: t }) {
|
|
|
5947
6067
|
}
|
|
5948
6068
|
//#endregion
|
|
5949
6069
|
//#region src/runtime/ui/privacy-panel.tsx
|
|
5950
|
-
function
|
|
5951
|
-
let [c, l] = B(!1), u =
|
|
6070
|
+
function lc({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isForgettingMe: i, forgetMeError: a, onForgetMe: o, onClose: s }) {
|
|
6071
|
+
let [c, l] = B(!1), u = Yi(e), d = e.kind === "verified", f = d ? e.identity.email : void 0, p = e.kind === "anon";
|
|
5952
6072
|
return /* @__PURE__ */ Q("div", {
|
|
5953
6073
|
class: "markup-panel",
|
|
5954
6074
|
children: [/* @__PURE__ */ Q("header", {
|
|
@@ -5962,7 +6082,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
5962
6082
|
title: "Close",
|
|
5963
6083
|
"aria-label": "Close privacy and data",
|
|
5964
6084
|
onClick: s,
|
|
5965
|
-
children: /* @__PURE__ */ Q(
|
|
6085
|
+
children: /* @__PURE__ */ Q(qo, { size: 14 })
|
|
5966
6086
|
})]
|
|
5967
6087
|
}), /* @__PURE__ */ Q("div", {
|
|
5968
6088
|
class: "markup-panel-body",
|
|
@@ -6047,7 +6167,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
6047
6167
|
"Only ",
|
|
6048
6168
|
/* @__PURE__ */ Q("span", {
|
|
6049
6169
|
class: "markup-panel-mono",
|
|
6050
|
-
children:
|
|
6170
|
+
children: uc(t)
|
|
6051
6171
|
}),
|
|
6052
6172
|
". No analytics, no ad tech, no third-party requests from the widget. If the widget itself crashes it posts the error, this page's URL and your user-agent to that same host, never your identity or what you were writing."
|
|
6053
6173
|
]
|
|
@@ -6083,7 +6203,7 @@ function ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isFo
|
|
|
6083
6203
|
})]
|
|
6084
6204
|
});
|
|
6085
6205
|
}
|
|
6086
|
-
function
|
|
6206
|
+
function uc(e) {
|
|
6087
6207
|
try {
|
|
6088
6208
|
return new URL(e).host;
|
|
6089
6209
|
} catch {
|
|
@@ -6092,8 +6212,8 @@ function oc(e) {
|
|
|
6092
6212
|
}
|
|
6093
6213
|
//#endregion
|
|
6094
6214
|
//#region src/runtime/ui/shortcuts-panel.tsx
|
|
6095
|
-
function
|
|
6096
|
-
let { mod: t, enter: n } =
|
|
6215
|
+
function dc({ onClose: e }) {
|
|
6216
|
+
let { mod: t, enter: n } = Wo();
|
|
6097
6217
|
return /* @__PURE__ */ Q("div", {
|
|
6098
6218
|
class: "markup-panel",
|
|
6099
6219
|
children: [/* @__PURE__ */ Q("header", {
|
|
@@ -6107,7 +6227,7 @@ function sc({ onClose: e }) {
|
|
|
6107
6227
|
title: "Close",
|
|
6108
6228
|
"aria-label": "Close keyboard shortcuts",
|
|
6109
6229
|
onClick: e,
|
|
6110
|
-
children: /* @__PURE__ */ Q(
|
|
6230
|
+
children: /* @__PURE__ */ Q(qo, { size: 14 })
|
|
6111
6231
|
})]
|
|
6112
6232
|
}), /* @__PURE__ */ Q("div", {
|
|
6113
6233
|
class: "markup-panel-body",
|
|
@@ -6187,14 +6307,14 @@ function sc({ onClose: e }) {
|
|
|
6187
6307
|
}
|
|
6188
6308
|
//#endregion
|
|
6189
6309
|
//#region src/runtime/ui/thread-popover.tsx
|
|
6190
|
-
var
|
|
6310
|
+
var fc = [
|
|
6191
6311
|
"👍",
|
|
6192
6312
|
"❤️",
|
|
6193
6313
|
"🎉",
|
|
6194
6314
|
"😮",
|
|
6195
6315
|
"😄",
|
|
6196
6316
|
"❓"
|
|
6197
|
-
],
|
|
6317
|
+
], pc = Ur({
|
|
6198
6318
|
none: {
|
|
6199
6319
|
"toggle-thread-menu": () => ({
|
|
6200
6320
|
kind: "thread-menu",
|
|
@@ -6250,13 +6370,13 @@ var cc = [
|
|
|
6250
6370
|
dismiss: () => ({ kind: "none" })
|
|
6251
6371
|
}
|
|
6252
6372
|
});
|
|
6253
|
-
function
|
|
6254
|
-
let b = H(null), x = H(null), S = H(null), C = H(null), [w, T] = Wr(
|
|
6373
|
+
function mc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIdentityResolving: i, isSigningIn: a, canDelete: o, isPending: s, error: c, isHidden: l = !1, members: u = [], onAuthor: d, onSignIn: f, onClose: p, onReply: m, onEditComment: h, onDeleteComment: g, onToggleReaction: _, onResolve: v, onDelete: y }) {
|
|
6374
|
+
let b = H(null), x = H(null), S = H(null), C = H(null), [w, T] = Wr(pc, { kind: "none" }), [E, D] = B(null), { onPointerDown: O, isDragging: ee } = _s({
|
|
6255
6375
|
targetRef: b,
|
|
6256
6376
|
shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
|
|
6257
6377
|
onMove: D
|
|
6258
6378
|
});
|
|
6259
|
-
|
|
6379
|
+
bs(b, !0);
|
|
6260
6380
|
let k = e.resolvedAt != null, A = it(() => e.comments.filter((e) => !e.deleted), [e.comments]);
|
|
6261
6381
|
V(() => {
|
|
6262
6382
|
if (w.kind === "none" || w.kind === "editing") return;
|
|
@@ -6306,8 +6426,8 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6306
6426
|
anchorSelector: e.anchorSelector
|
|
6307
6427
|
});
|
|
6308
6428
|
return {
|
|
6309
|
-
left:
|
|
6310
|
-
top:
|
|
6429
|
+
left: vc(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
|
|
6430
|
+
top: vc(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
|
|
6311
6431
|
};
|
|
6312
6432
|
}, [
|
|
6313
6433
|
e.anchorX,
|
|
@@ -6347,7 +6467,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6347
6467
|
class: Z("markup-icon-btn", w.kind === "thread-menu" && "is-open"),
|
|
6348
6468
|
title: "More options",
|
|
6349
6469
|
onClick: () => T({ type: "toggle-thread-menu" }),
|
|
6350
|
-
children: /* @__PURE__ */ Q(
|
|
6470
|
+
children: /* @__PURE__ */ Q(Yo, { size: 16 })
|
|
6351
6471
|
}), w.kind === "thread-menu" ? /* @__PURE__ */ Q("div", {
|
|
6352
6472
|
class: "markup-thread-menu-list",
|
|
6353
6473
|
children: [/* @__PURE__ */ Q("button", {
|
|
@@ -6375,14 +6495,14 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6375
6495
|
title: "Mark as resolved",
|
|
6376
6496
|
disabled: s,
|
|
6377
6497
|
onClick: v,
|
|
6378
|
-
children: /* @__PURE__ */ Q(
|
|
6498
|
+
children: /* @__PURE__ */ Q(Xo, { size: 16 })
|
|
6379
6499
|
}) : null,
|
|
6380
6500
|
/* @__PURE__ */ Q("button", {
|
|
6381
6501
|
type: "button",
|
|
6382
6502
|
class: "markup-icon-btn",
|
|
6383
6503
|
title: "Close thread",
|
|
6384
6504
|
onClick: p,
|
|
6385
|
-
children: /* @__PURE__ */ Q(
|
|
6505
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
6386
6506
|
})
|
|
6387
6507
|
]
|
|
6388
6508
|
})]
|
|
@@ -6395,10 +6515,10 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6395
6515
|
return /* @__PURE__ */ Q("li", {
|
|
6396
6516
|
class: Z("markup-comment", j.current != null && t.createdAt > j.current && "is-new"),
|
|
6397
6517
|
children: [
|
|
6398
|
-
/* @__PURE__ */ Q(
|
|
6518
|
+
/* @__PURE__ */ Q(yc, {
|
|
6399
6519
|
name: t.authorName,
|
|
6400
6520
|
image: t.authorImage,
|
|
6401
|
-
tone:
|
|
6521
|
+
tone: xc(t.authorClientId ?? t.authorName)
|
|
6402
6522
|
}),
|
|
6403
6523
|
/* @__PURE__ */ Q("div", {
|
|
6404
6524
|
class: "markup-comment-meta",
|
|
@@ -6412,23 +6532,23 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6412
6532
|
role: "img",
|
|
6413
6533
|
"aria-label": "Written by an AI agent",
|
|
6414
6534
|
title: "Written by an AI agent",
|
|
6415
|
-
children: /* @__PURE__ */ Q(
|
|
6535
|
+
children: /* @__PURE__ */ Q(ps, { size: 11 })
|
|
6416
6536
|
}) : null,
|
|
6417
6537
|
/* @__PURE__ */ Q("time", {
|
|
6418
6538
|
class: "markup-comment-time",
|
|
6419
6539
|
datetime: new Date(t.createdAt).toISOString(),
|
|
6420
|
-
title:
|
|
6421
|
-
children:
|
|
6540
|
+
title: Cc(t.createdAt),
|
|
6541
|
+
children: Sc(t.createdAt)
|
|
6422
6542
|
}),
|
|
6423
6543
|
t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
|
|
6424
6544
|
class: "markup-comment-edited",
|
|
6425
6545
|
datetime: new Date(t.editedAt).toISOString(),
|
|
6426
|
-
title:
|
|
6546
|
+
title: Cc(t.editedAt),
|
|
6427
6547
|
children: "edited"
|
|
6428
6548
|
}),
|
|
6429
6549
|
/* @__PURE__ */ Q("div", {
|
|
6430
6550
|
class: "markup-thread-actions",
|
|
6431
|
-
children: [!k && !l ? /* @__PURE__ */ Q(
|
|
6551
|
+
children: [!k && !l ? /* @__PURE__ */ Q(hc, {
|
|
6432
6552
|
comment: t,
|
|
6433
6553
|
pickerOpen: m,
|
|
6434
6554
|
pickerDirection: v,
|
|
@@ -6496,7 +6616,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6496
6616
|
direction: a < i ? "up" : "down"
|
|
6497
6617
|
});
|
|
6498
6618
|
},
|
|
6499
|
-
children: /* @__PURE__ */ Q(
|
|
6619
|
+
children: /* @__PURE__ */ Q(Yo, { size: 16 })
|
|
6500
6620
|
}), f ? /* @__PURE__ */ Q("div", {
|
|
6501
6621
|
class: "markup-thread-menu-list",
|
|
6502
6622
|
children: [o ? /* @__PURE__ */ Q("button", {
|
|
@@ -6536,7 +6656,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6536
6656
|
await h(t._id, n), T({ type: "dismiss" });
|
|
6537
6657
|
} catch {}
|
|
6538
6658
|
},
|
|
6539
|
-
children: [/* @__PURE__ */ Q(
|
|
6659
|
+
children: [/* @__PURE__ */ Q(Ks, {
|
|
6540
6660
|
class: "markup-comment-edit-input",
|
|
6541
6661
|
label: "Edit comment",
|
|
6542
6662
|
value: w.draft,
|
|
@@ -6562,7 +6682,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6562
6682
|
children: "Save"
|
|
6563
6683
|
})]
|
|
6564
6684
|
})]
|
|
6565
|
-
}) : /* @__PURE__ */ Q(
|
|
6685
|
+
}) : /* @__PURE__ */ Q(Us, {
|
|
6566
6686
|
body: t.body,
|
|
6567
6687
|
mentions: t.mentions
|
|
6568
6688
|
}),
|
|
@@ -6575,7 +6695,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6575
6695
|
alt: "Screenshot"
|
|
6576
6696
|
})
|
|
6577
6697
|
}) : null,
|
|
6578
|
-
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(
|
|
6698
|
+
!l && t.reactions.length > 0 ? /* @__PURE__ */ Q(gc, {
|
|
6579
6699
|
comment: t,
|
|
6580
6700
|
isResolved: k,
|
|
6581
6701
|
onToggle: (e) => _(t._id, e)
|
|
@@ -6595,7 +6715,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6595
6715
|
onClick: (e) => {
|
|
6596
6716
|
e.stopPropagation(), S.current?.close();
|
|
6597
6717
|
},
|
|
6598
|
-
children: /* @__PURE__ */ Q(
|
|
6718
|
+
children: /* @__PURE__ */ Q(qo, { size: 16 })
|
|
6599
6719
|
}), /* @__PURE__ */ Q("img", {
|
|
6600
6720
|
class: "markup-lightbox-img",
|
|
6601
6721
|
src: e.screenshotUrl,
|
|
@@ -6603,7 +6723,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6603
6723
|
onClick: (e) => e.stopPropagation()
|
|
6604
6724
|
})]
|
|
6605
6725
|
}) : null,
|
|
6606
|
-
t == null ? /* @__PURE__ */ Q(
|
|
6726
|
+
t == null ? /* @__PURE__ */ Q(Ss, {
|
|
6607
6727
|
isPending: s,
|
|
6608
6728
|
isConnecting: i,
|
|
6609
6729
|
isSigningIn: a,
|
|
@@ -6625,7 +6745,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6625
6745
|
children: "team"
|
|
6626
6746
|
}) : null
|
|
6627
6747
|
]
|
|
6628
|
-
}), /* @__PURE__ */ Q(
|
|
6748
|
+
}), /* @__PURE__ */ Q(Js, {
|
|
6629
6749
|
label: "Reply",
|
|
6630
6750
|
placeholder: "Write a reply…",
|
|
6631
6751
|
submitLabel: "Reply",
|
|
@@ -6639,7 +6759,7 @@ function uc({ thread: e, authorName: t, currentClientId: n, isVerified: r, isIde
|
|
|
6639
6759
|
]
|
|
6640
6760
|
});
|
|
6641
6761
|
}
|
|
6642
|
-
function
|
|
6762
|
+
function hc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pickerRef: i, onPickerClick: a, onPickerSelect: o }) {
|
|
6643
6763
|
return /* @__PURE__ */ Q("div", {
|
|
6644
6764
|
class: Z("markup-reaction-picker-wrap", t && "is-open", t && n === "up" && "is-up", r && "is-side"),
|
|
6645
6765
|
ref: i,
|
|
@@ -6649,11 +6769,11 @@ function dc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
|
|
|
6649
6769
|
title: "Add reaction",
|
|
6650
6770
|
"aria-label": "Add reaction",
|
|
6651
6771
|
onClick: a,
|
|
6652
|
-
children: /* @__PURE__ */ Q(
|
|
6772
|
+
children: /* @__PURE__ */ Q($o, { size: 16 })
|
|
6653
6773
|
}), t ? /* @__PURE__ */ Q("div", {
|
|
6654
6774
|
class: "markup-reaction-picker",
|
|
6655
6775
|
role: "menu",
|
|
6656
|
-
children:
|
|
6776
|
+
children: fc.map((t) => /* @__PURE__ */ Q("button", {
|
|
6657
6777
|
type: "button",
|
|
6658
6778
|
role: "menuitem",
|
|
6659
6779
|
class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
|
|
@@ -6663,11 +6783,11 @@ function dc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
|
|
|
6663
6783
|
}) : null]
|
|
6664
6784
|
});
|
|
6665
6785
|
}
|
|
6666
|
-
function
|
|
6786
|
+
function gc({ comment: e, isResolved: t, onToggle: n }) {
|
|
6667
6787
|
return /* @__PURE__ */ Q("div", {
|
|
6668
6788
|
class: "markup-reactions",
|
|
6669
6789
|
children: e.reactions.map((e) => {
|
|
6670
|
-
let r =
|
|
6790
|
+
let r = _c(e.reactors, e.mine, e.count, e.emoji);
|
|
6671
6791
|
return /* @__PURE__ */ Q("button", {
|
|
6672
6792
|
type: "button",
|
|
6673
6793
|
class: Z("markup-reaction-chip", e.mine && "is-mine"),
|
|
@@ -6688,14 +6808,14 @@ function fc({ comment: e, isResolved: t, onToggle: n }) {
|
|
|
6688
6808
|
})
|
|
6689
6809
|
});
|
|
6690
6810
|
}
|
|
6691
|
-
function
|
|
6811
|
+
function _c(e, t, n, r) {
|
|
6692
6812
|
let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
|
|
6693
6813
|
return o > 0 && i.push(`${o} other${o === 1 ? "" : "s"}`), t && i.push("you"), i.length === 0 ? `${n} reacted with ${r}` : `${i.length === 1 ? i[0] : `${i.slice(0, -1).join(", ")} and ${i[i.length - 1]}`} reacted with ${r}`;
|
|
6694
6814
|
}
|
|
6695
|
-
function
|
|
6815
|
+
function vc(e, t, n) {
|
|
6696
6816
|
return Math.max(t, Math.min(n, e));
|
|
6697
6817
|
}
|
|
6698
|
-
function
|
|
6818
|
+
function yc({ name: e, image: t, tone: n }) {
|
|
6699
6819
|
let [r, i] = B(null);
|
|
6700
6820
|
return /* @__PURE__ */ Q("span", {
|
|
6701
6821
|
class: "markup-comment-avatar",
|
|
@@ -6711,11 +6831,11 @@ function hc({ name: e, image: t, tone: n }) {
|
|
|
6711
6831
|
onError: () => i(t)
|
|
6712
6832
|
}) : /* @__PURE__ */ Q("span", {
|
|
6713
6833
|
class: "markup-avatar-initials",
|
|
6714
|
-
children:
|
|
6834
|
+
children: bc(e)
|
|
6715
6835
|
})
|
|
6716
6836
|
});
|
|
6717
6837
|
}
|
|
6718
|
-
function
|
|
6838
|
+
function bc(e) {
|
|
6719
6839
|
let t = e.trim();
|
|
6720
6840
|
if (!t) return "??";
|
|
6721
6841
|
let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
|
|
@@ -6723,12 +6843,12 @@ function gc(e) {
|
|
|
6723
6843
|
let i = n[n.length - 1] ?? "";
|
|
6724
6844
|
return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
|
|
6725
6845
|
}
|
|
6726
|
-
function
|
|
6846
|
+
function xc(e) {
|
|
6727
6847
|
let t = 0;
|
|
6728
6848
|
for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
|
|
6729
6849
|
return Math.abs(t) % 5 + 1;
|
|
6730
6850
|
}
|
|
6731
|
-
function
|
|
6851
|
+
function Sc(e) {
|
|
6732
6852
|
let t = Date.now() - e, n = Math.floor(t / 1e3);
|
|
6733
6853
|
if (n < 60) return "just now";
|
|
6734
6854
|
let r = Math.floor(n / 60);
|
|
@@ -6745,7 +6865,7 @@ function vc(e) {
|
|
|
6745
6865
|
year: "numeric"
|
|
6746
6866
|
});
|
|
6747
6867
|
}
|
|
6748
|
-
function
|
|
6868
|
+
function Cc(e) {
|
|
6749
6869
|
return new Date(e).toLocaleDateString([], {
|
|
6750
6870
|
month: "long",
|
|
6751
6871
|
day: "numeric",
|
|
@@ -6756,7 +6876,7 @@ function yc(e) {
|
|
|
6756
6876
|
}
|
|
6757
6877
|
//#endregion
|
|
6758
6878
|
//#region src/runtime/ui/toolbar.tsx
|
|
6759
|
-
function
|
|
6879
|
+
function wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right", unreadCount: i = 0, showInbox: a = !1, onOpenInbox: o, inboxOpen: s = !1, pinsVisible: c = !0, onTogglePins: l, identityButton: u, overflowButton: d }) {
|
|
6760
6880
|
let f = H(0);
|
|
6761
6881
|
i > 0 && (f.current = i);
|
|
6762
6882
|
let p = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
|
|
@@ -6780,7 +6900,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6780
6900
|
title: e ? "Cancel placing markup" : "Leave a markup",
|
|
6781
6901
|
"aria-pressed": e,
|
|
6782
6902
|
onClick: m,
|
|
6783
|
-
children: Q(e ?
|
|
6903
|
+
children: Q(e ? qo : es, { size: 16 })
|
|
6784
6904
|
}),
|
|
6785
6905
|
a ? /* @__PURE__ */ Q("button", {
|
|
6786
6906
|
type: "button",
|
|
@@ -6792,7 +6912,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6792
6912
|
onClick: (e) => {
|
|
6793
6913
|
e.preventDefault(), e.stopPropagation(), o?.();
|
|
6794
6914
|
},
|
|
6795
|
-
children: [/* @__PURE__ */ Q(
|
|
6915
|
+
children: [/* @__PURE__ */ Q(ts, { size: 16 }), /* @__PURE__ */ Q("span", {
|
|
6796
6916
|
class: "markup-tb-badge",
|
|
6797
6917
|
"data-unread": i > 0 ? "true" : "false",
|
|
6798
6918
|
"aria-hidden": "true",
|
|
@@ -6812,7 +6932,7 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6812
6932
|
onClick: (e) => {
|
|
6813
6933
|
e.preventDefault(), e.stopPropagation(), l();
|
|
6814
6934
|
},
|
|
6815
|
-
children: Q(c ?
|
|
6935
|
+
children: Q(c ? ns : rs, { size: 16 })
|
|
6816
6936
|
})] }) : null,
|
|
6817
6937
|
u || d ? /* @__PURE__ */ Q("div", {
|
|
6818
6938
|
class: "markup-tb-sep",
|
|
@@ -6826,19 +6946,19 @@ function bc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
|
|
|
6826
6946
|
"data-kind": "overflow",
|
|
6827
6947
|
"aria-label": "More options",
|
|
6828
6948
|
disabled: !0,
|
|
6829
|
-
children: /* @__PURE__ */ Q(
|
|
6949
|
+
children: /* @__PURE__ */ Q(is, { size: 16 })
|
|
6830
6950
|
})
|
|
6831
6951
|
]
|
|
6832
6952
|
});
|
|
6833
6953
|
}
|
|
6834
6954
|
//#endregion
|
|
6835
6955
|
//#region src/runtime/ui/app.tsx
|
|
6836
|
-
function
|
|
6956
|
+
function Tc(e) {
|
|
6837
6957
|
let t = {
|
|
6838
6958
|
clientId: `markup_user_${e.identity.id}`,
|
|
6839
6959
|
name: e.identity.name,
|
|
6840
6960
|
email: e.identity.email,
|
|
6841
|
-
image: e.identity.image == null ? void 0 :
|
|
6961
|
+
image: e.identity.image == null ? void 0 : Vi(e.identity.image, location.href)?.href ?? void 0
|
|
6842
6962
|
};
|
|
6843
6963
|
if (e.mode === "cookies") return e.tokenExpiresAt == null || e.refreshTokenExpiresAt == null ? null : {
|
|
6844
6964
|
storage: "cookies",
|
|
@@ -6859,17 +6979,17 @@ function xc(e) {
|
|
|
6859
6979
|
} : {}
|
|
6860
6980
|
};
|
|
6861
6981
|
}
|
|
6862
|
-
function
|
|
6982
|
+
function Ec() {
|
|
6863
6983
|
let e = document.activeElement;
|
|
6864
6984
|
for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
|
|
6865
6985
|
if (!e) return !1;
|
|
6866
6986
|
let t = e.tagName;
|
|
6867
6987
|
return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
|
|
6868
6988
|
}
|
|
6869
|
-
function
|
|
6989
|
+
function Dc() {
|
|
6870
6990
|
return window.location.host + window.location.pathname;
|
|
6871
6991
|
}
|
|
6872
|
-
var
|
|
6992
|
+
var Oc = Ur({
|
|
6873
6993
|
visible: {
|
|
6874
6994
|
"hide-with-toast": () => ({ kind: "hidden-with-toast" }),
|
|
6875
6995
|
toggle: () => ({ kind: "hidden" })
|
|
@@ -6880,26 +7000,26 @@ var wc = Ur({
|
|
|
6880
7000
|
},
|
|
6881
7001
|
hidden: { toggle: () => ({ kind: "visible" }) }
|
|
6882
7002
|
});
|
|
6883
|
-
function
|
|
6884
|
-
return
|
|
7003
|
+
function kc(e) {
|
|
7004
|
+
return qi(e), e;
|
|
6885
7005
|
}
|
|
6886
|
-
var
|
|
7006
|
+
var Ac = Ur({
|
|
6887
7007
|
unresolved: {
|
|
6888
|
-
"mint-success": (e, t) =>
|
|
7008
|
+
"mint-success": (e, t) => kc({
|
|
6889
7009
|
kind: "anon",
|
|
6890
7010
|
identity: t.identity
|
|
6891
7011
|
}),
|
|
6892
|
-
"signed-in": (e, t) =>
|
|
7012
|
+
"signed-in": (e, t) => kc({
|
|
6893
7013
|
kind: "verified",
|
|
6894
7014
|
identity: t.identity
|
|
6895
7015
|
})
|
|
6896
7016
|
},
|
|
6897
7017
|
anon: {
|
|
6898
|
-
"signed-in": (e, t) =>
|
|
7018
|
+
"signed-in": (e, t) => kc({
|
|
6899
7019
|
kind: "verified",
|
|
6900
7020
|
identity: t.identity
|
|
6901
7021
|
}),
|
|
6902
|
-
"author-set": (e, t) =>
|
|
7022
|
+
"author-set": (e, t) => kc({
|
|
6903
7023
|
kind: "anon",
|
|
6904
7024
|
identity: {
|
|
6905
7025
|
...e.identity,
|
|
@@ -6907,49 +7027,49 @@ var Ec = Ur({
|
|
|
6907
7027
|
email: t.email
|
|
6908
7028
|
}
|
|
6909
7029
|
}),
|
|
6910
|
-
"forget-me": () =>
|
|
7030
|
+
"forget-me": () => kc({ kind: "unresolved" })
|
|
6911
7031
|
},
|
|
6912
7032
|
verified: {
|
|
6913
|
-
"signed-in": (e, t) =>
|
|
7033
|
+
"signed-in": (e, t) => kc({
|
|
6914
7034
|
kind: "verified",
|
|
6915
7035
|
identity: t.identity
|
|
6916
7036
|
}),
|
|
6917
|
-
unauthorized: (e) =>
|
|
7037
|
+
unauthorized: (e) => kc({
|
|
6918
7038
|
kind: "recovering",
|
|
6919
7039
|
preserved: {
|
|
6920
7040
|
name: e.identity.name,
|
|
6921
7041
|
email: e.identity.email
|
|
6922
7042
|
}
|
|
6923
7043
|
}),
|
|
6924
|
-
"signed-out": () =>
|
|
7044
|
+
"signed-out": () => kc({ kind: "unresolved" })
|
|
6925
7045
|
},
|
|
6926
7046
|
recovering: {
|
|
6927
|
-
"mint-success": (e, t) =>
|
|
7047
|
+
"mint-success": (e, t) => kc({
|
|
6928
7048
|
kind: "anon",
|
|
6929
7049
|
identity: t.identity
|
|
6930
7050
|
}),
|
|
6931
|
-
"signed-in": (e, t) =>
|
|
7051
|
+
"signed-in": (e, t) => kc({
|
|
6932
7052
|
kind: "verified",
|
|
6933
7053
|
identity: t.identity
|
|
6934
7054
|
})
|
|
6935
7055
|
}
|
|
6936
7056
|
});
|
|
6937
|
-
function
|
|
6938
|
-
let [a, o] = B(
|
|
7057
|
+
function jc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
|
|
7058
|
+
let [a, o] = B(Dc), [s, c] = B([]), [l, u] = B(!1), d = it(() => Ki(), []), [f, p] = Wr(Ac, d.state), [m, h] = B(null);
|
|
6939
7059
|
V(() => {
|
|
6940
7060
|
let n = !1;
|
|
6941
|
-
return
|
|
7061
|
+
return Mi(e, t).then((e) => {
|
|
6942
7062
|
n || h(e);
|
|
6943
7063
|
}), () => {
|
|
6944
7064
|
n = !0;
|
|
6945
7065
|
};
|
|
6946
7066
|
}, [e, t]);
|
|
6947
7067
|
let [g, _] = B(n), [v, y] = B(!0), [b, x] = B(!0), [S, C] = B(null), w = U(() => C(null), []), T = H(f);
|
|
6948
|
-
T.current = f,
|
|
7068
|
+
T.current = f, Uo(f, e, t, (e) => p({
|
|
6949
7069
|
type: "signed-in",
|
|
6950
7070
|
identity: e
|
|
6951
7071
|
}), () => p({ type: "unauthorized" }));
|
|
6952
|
-
let E = it(() =>
|
|
7072
|
+
let E = it(() => ki({
|
|
6953
7073
|
apiUrl: e,
|
|
6954
7074
|
apiKey: t,
|
|
6955
7075
|
getToken: () => {
|
|
@@ -6991,7 +7111,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
6991
7111
|
}).finally(() => {
|
|
6992
7112
|
re(!1);
|
|
6993
7113
|
});
|
|
6994
|
-
}, [E]), le = Zr(), ue = Zr(), de = Zr(), fe = Zr(), pe = Zr(), { run: N, reset: me } = le, { run: he } = ue, { run: ge, reset: P } = de, { run: _e } = fe, { run: ve } = pe, ye = pe.isPending, be = le.isPending, xe = le.error ?? ue.error ?? de.error, [Se, Ce] = Wr(
|
|
7114
|
+
}, [E]), le = Zr(), ue = Zr(), de = Zr(), fe = Zr(), pe = Zr(), { run: N, reset: me } = le, { run: he } = ue, { run: ge, reset: P } = de, { run: _e } = fe, { run: ve } = pe, ye = pe.isPending, be = le.isPending, xe = le.error ?? ue.error ?? de.error, [Se, Ce] = Wr(Oc, { kind: "visible" }), we = Se.kind !== "visible", [Te, Ee] = B(0), De = H(null), Oe = Yi(f), ke = f.kind === "verified", Ae = f.kind === "unresolved" || f.kind === "recovering", je = Ji(f);
|
|
6995
7115
|
V(() => {
|
|
6996
7116
|
if (f.kind !== "unresolved" && f.kind !== "recovering") return;
|
|
6997
7117
|
let e = f.kind === "recovering" ? f.preserved : d.preserved, t = !1, n = null, r = 1e3;
|
|
@@ -7021,7 +7141,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7021
7141
|
p,
|
|
7022
7142
|
d
|
|
7023
7143
|
]);
|
|
7024
|
-
let I =
|
|
7144
|
+
let I = zo(E), [Me, Ne] = B(null);
|
|
7025
7145
|
V(() => {
|
|
7026
7146
|
let t = new Hr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
|
|
7027
7147
|
return Ne(t), () => {
|
|
@@ -7067,7 +7187,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7067
7187
|
}), history.replaceState(null, "", window.location.pathname + window.location.search);
|
|
7068
7188
|
}
|
|
7069
7189
|
L.current = !0;
|
|
7070
|
-
}, [s, l]), V(() =>
|
|
7190
|
+
}, [s, l]), V(() => zi(() => o(Dc())), []), V(() => {
|
|
7071
7191
|
function e(e) {
|
|
7072
7192
|
e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ce({ type: "toggle" })));
|
|
7073
7193
|
}
|
|
@@ -7096,7 +7216,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7096
7216
|
}, [me, P]);
|
|
7097
7217
|
V(() => {
|
|
7098
7218
|
function e(e) {
|
|
7099
|
-
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || D.kind === "idle" && (we ||
|
|
7219
|
+
e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || D.kind === "idle" && (we || Ec() || (e.preventDefault(), Pe())));
|
|
7100
7220
|
}
|
|
7101
7221
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
7102
7222
|
}, [
|
|
@@ -7139,7 +7259,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7139
7259
|
strictScrub: r?.strictScrub,
|
|
7140
7260
|
redactSelector: r?.redactSelector
|
|
7141
7261
|
};
|
|
7142
|
-
|
|
7262
|
+
Ao(s, {
|
|
7143
7263
|
x: t,
|
|
7144
7264
|
y: n
|
|
7145
7265
|
}, c).then((e) => {
|
|
@@ -7160,7 +7280,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7160
7280
|
});
|
|
7161
7281
|
}, [p]), ze = ue.isPending, Be = U(async () => {
|
|
7162
7282
|
F("sign_in_started"), await he(async () => {
|
|
7163
|
-
let n =
|
|
7283
|
+
let n = Tc(await ta({
|
|
7164
7284
|
apiUrl: e,
|
|
7165
7285
|
apiKey: t,
|
|
7166
7286
|
useCookies: m === !0
|
|
@@ -7179,7 +7299,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7179
7299
|
p
|
|
7180
7300
|
]), Ve = U(async (e, t) => {
|
|
7181
7301
|
if (D.kind !== "composing-new") return;
|
|
7182
|
-
let n =
|
|
7302
|
+
let n = Xi(f);
|
|
7183
7303
|
n && await N(async () => {
|
|
7184
7304
|
let r;
|
|
7185
7305
|
if (t && D.screenshot) {
|
|
@@ -7259,7 +7379,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7259
7379
|
threadId: e.threadId
|
|
7260
7380
|
});
|
|
7261
7381
|
else {
|
|
7262
|
-
let t =
|
|
7382
|
+
let t = Vi(e.threadUrl, window.location.href);
|
|
7263
7383
|
t && (t.hash = `markup-thread=${e.threadId}`, window.location.href = t.toString());
|
|
7264
7384
|
}
|
|
7265
7385
|
}, [E, s]), R = U(() => {
|
|
@@ -7269,7 +7389,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7269
7389
|
} : e)), E.markAllNotificationsRead().catch(() => {}).finally(() => se(!1));
|
|
7270
7390
|
}, [E]), Ge = U(async (e) => {
|
|
7271
7391
|
if (D.kind !== "thread") return;
|
|
7272
|
-
let t =
|
|
7392
|
+
let t = Xi(f);
|
|
7273
7393
|
if (!t) return;
|
|
7274
7394
|
let n = D.threadId;
|
|
7275
7395
|
await N(async () => {
|
|
@@ -7315,7 +7435,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7315
7435
|
N
|
|
7316
7436
|
]), Je = U(async (e, t) => {
|
|
7317
7437
|
if (D.kind !== "thread") return;
|
|
7318
|
-
let n =
|
|
7438
|
+
let n = Xi(f);
|
|
7319
7439
|
if (!n) return;
|
|
7320
7440
|
let r = D.threadId;
|
|
7321
7441
|
await ge(async () => {
|
|
@@ -7359,28 +7479,35 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7359
7479
|
let e = window.setTimeout(() => Qe(!1), 5e3);
|
|
7360
7480
|
return () => window.clearTimeout(e);
|
|
7361
7481
|
}, [Ze]);
|
|
7362
|
-
let et = D.kind === "thread" ? s.find((e) => e._id === D.threadId) ?? null : null, tt = ke || je != null && je === et?.authorClientId, nt =
|
|
7363
|
-
|
|
7364
|
-
|
|
7365
|
-
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
|
|
7369
|
-
|
|
7370
|
-
|
|
7371
|
-
|
|
7482
|
+
let et = D.kind === "thread" ? s.find((e) => e._id === D.threadId) ?? null : null, tt = ke || je != null && je === et?.authorClientId, nt = H(/* @__PURE__ */ new Map()), rt = it(() => {
|
|
7483
|
+
let e = nt.current, t = s.map((t) => {
|
|
7484
|
+
let { point: n, memory: r } = bi({
|
|
7485
|
+
anchorX: t.anchorX,
|
|
7486
|
+
anchorY: t.anchorY,
|
|
7487
|
+
anchorSelector: t.anchorSelector,
|
|
7488
|
+
anchorOffsetX: t.anchorOffsetX,
|
|
7489
|
+
anchorOffsetY: t.anchorOffsetY
|
|
7490
|
+
}, e.get(t._id));
|
|
7491
|
+
return e.set(t._id, r), {
|
|
7492
|
+
thread: t,
|
|
7493
|
+
point: n
|
|
7494
|
+
};
|
|
7495
|
+
});
|
|
7496
|
+
for (let t of e.keys()) s.some((e) => e._id === t) || e.delete(t);
|
|
7497
|
+
return t;
|
|
7498
|
+
}, [s, Te]), at = H({
|
|
7372
7499
|
retryable: !1,
|
|
7373
7500
|
elements: []
|
|
7374
7501
|
});
|
|
7375
7502
|
V(() => {
|
|
7376
|
-
|
|
7377
|
-
retryable:
|
|
7378
|
-
elements:
|
|
7503
|
+
at.current = {
|
|
7504
|
+
retryable: rt.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
|
|
7505
|
+
elements: rt.flatMap((e) => e.point.element ? [e.point.element] : [])
|
|
7379
7506
|
};
|
|
7380
|
-
}, [
|
|
7381
|
-
let
|
|
7507
|
+
}, [rt]);
|
|
7508
|
+
let ot = s.some((e) => e.anchorSelector != null);
|
|
7382
7509
|
return V(() => {
|
|
7383
|
-
if (!
|
|
7510
|
+
if (!ot) return;
|
|
7384
7511
|
let e = null;
|
|
7385
7512
|
function t() {
|
|
7386
7513
|
e ??= requestAnimationFrame(() => {
|
|
@@ -7388,7 +7515,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7388
7515
|
});
|
|
7389
7516
|
}
|
|
7390
7517
|
let n = new MutationObserver(() => {
|
|
7391
|
-
let { retryable: e, elements: n } =
|
|
7518
|
+
let { retryable: e, elements: n } = at.current;
|
|
7392
7519
|
!e && n.every((e) => e.isConnected) || t();
|
|
7393
7520
|
});
|
|
7394
7521
|
return n.observe(document.body, {
|
|
@@ -7397,7 +7524,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7397
7524
|
}), () => {
|
|
7398
7525
|
n.disconnect(), e != null && cancelAnimationFrame(e);
|
|
7399
7526
|
};
|
|
7400
|
-
}, [
|
|
7527
|
+
}, [ot]), V(() => {
|
|
7401
7528
|
D.kind === "thread" && et == null && Fe();
|
|
7402
7529
|
}, [
|
|
7403
7530
|
D,
|
|
@@ -7409,9 +7536,9 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7409
7536
|
children: [
|
|
7410
7537
|
D.kind === "placing" ? null : /* @__PURE__ */ Q("div", {
|
|
7411
7538
|
class: "markup-pins-layer",
|
|
7412
|
-
children: [!we && v ?
|
|
7539
|
+
children: [!we && v ? rt.map(({ thread: e, point: t }) => {
|
|
7413
7540
|
let n = D.kind === "thread" && D.threadId === e._id, r = e.comments.reduce((e, t) => e + +!t.deleted, 0);
|
|
7414
|
-
return /* @__PURE__ */ Q(
|
|
7541
|
+
return /* @__PURE__ */ Q(oc, {
|
|
7415
7542
|
pageX: t.pageX,
|
|
7416
7543
|
pageY: t.pageY,
|
|
7417
7544
|
count: r,
|
|
@@ -7424,16 +7551,16 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7424
7551
|
});
|
|
7425
7552
|
}
|
|
7426
7553
|
}, e._id);
|
|
7427
|
-
}) : null, D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7554
|
+
}) : null, D.kind === "composing-new" ? /* @__PURE__ */ Q(sc, {
|
|
7428
7555
|
pageX: D.pageX,
|
|
7429
7556
|
pageY: D.pageY
|
|
7430
7557
|
}) : null]
|
|
7431
7558
|
}),
|
|
7432
|
-
D.kind === "placing" ? /* @__PURE__ */ Q(
|
|
7559
|
+
D.kind === "placing" ? /* @__PURE__ */ Q(cc, {
|
|
7433
7560
|
onPlace: Le,
|
|
7434
7561
|
onCancel: Fe
|
|
7435
7562
|
}) : null,
|
|
7436
|
-
D.kind === "thread" && et ? /* @__PURE__ */ Q(
|
|
7563
|
+
D.kind === "thread" && et ? /* @__PURE__ */ Q(mc, {
|
|
7437
7564
|
thread: et,
|
|
7438
7565
|
authorName: Oe,
|
|
7439
7566
|
currentClientId: je ?? null,
|
|
@@ -7455,7 +7582,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7455
7582
|
onDelete: He,
|
|
7456
7583
|
onResolve: Ue
|
|
7457
7584
|
}, et._id) : null,
|
|
7458
|
-
D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7585
|
+
D.kind === "composing-new" ? /* @__PURE__ */ Q(Xs, {
|
|
7459
7586
|
pageX: D.pageX,
|
|
7460
7587
|
pageY: D.pageY,
|
|
7461
7588
|
authorName: Oe,
|
|
@@ -7475,7 +7602,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7475
7602
|
onSubmit: Ve,
|
|
7476
7603
|
onClose: Fe
|
|
7477
7604
|
}) : null,
|
|
7478
|
-
!we || D.kind === "placing" || D.kind === "composing-new" ? /* @__PURE__ */ Q(
|
|
7605
|
+
!we || D.kind === "placing" || D.kind === "composing-new" ? /* @__PURE__ */ Q(wc, {
|
|
7479
7606
|
isActive: D.kind === "placing",
|
|
7480
7607
|
onToggle: () => D.kind === "placing" ? Fe() : Pe(),
|
|
7481
7608
|
onHide: () => Ce({ type: "hide-with-toast" }),
|
|
@@ -7489,7 +7616,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7489
7616
|
},
|
|
7490
7617
|
pinsVisible: v,
|
|
7491
7618
|
onTogglePins: () => y((e) => !e),
|
|
7492
|
-
identityButton: /* @__PURE__ */ Q(
|
|
7619
|
+
identityButton: /* @__PURE__ */ Q(hs, {
|
|
7493
7620
|
identity: f,
|
|
7494
7621
|
position: g,
|
|
7495
7622
|
isSigningIn: ze,
|
|
@@ -7499,7 +7626,7 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7499
7626
|
onSignOut: $e,
|
|
7500
7627
|
onForgetMe: Xe
|
|
7501
7628
|
}),
|
|
7502
|
-
overflowButton: /* @__PURE__ */ Q(
|
|
7629
|
+
overflowButton: /* @__PURE__ */ Q(tc, {
|
|
7503
7630
|
position: g,
|
|
7504
7631
|
onSetPosition: _,
|
|
7505
7632
|
autoCapture: b && r?.enabled !== !1,
|
|
@@ -7508,17 +7635,17 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7508
7635
|
onOpenPrivacy: () => C("privacy"),
|
|
7509
7636
|
onOpenShortcuts: () => C("shortcuts"),
|
|
7510
7637
|
onHideForSession: () => Ce({ type: "hide-with-toast" }),
|
|
7511
|
-
version: "1.
|
|
7638
|
+
version: "1.19.0",
|
|
7512
7639
|
dashboardUrl: i
|
|
7513
7640
|
})
|
|
7514
7641
|
}) : null,
|
|
7515
|
-
S === "inbox" && ke ? /* @__PURE__ */ Q(
|
|
7642
|
+
S === "inbox" && ke ? /* @__PURE__ */ Q(ac, {
|
|
7516
7643
|
kind: "inbox",
|
|
7517
7644
|
label: "Inbox",
|
|
7518
7645
|
position: g,
|
|
7519
7646
|
ignoreToolbarKind: "inbox",
|
|
7520
7647
|
onClose: w,
|
|
7521
|
-
children: /* @__PURE__ */ Q(
|
|
7648
|
+
children: /* @__PURE__ */ Q(Qs, {
|
|
7522
7649
|
items: te,
|
|
7523
7650
|
isLoading: ne,
|
|
7524
7651
|
error: ie,
|
|
@@ -7530,12 +7657,12 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7530
7657
|
onMarkAllRead: R
|
|
7531
7658
|
})
|
|
7532
7659
|
}) : null,
|
|
7533
|
-
S === "privacy" ? /* @__PURE__ */ Q(
|
|
7660
|
+
S === "privacy" ? /* @__PURE__ */ Q(ac, {
|
|
7534
7661
|
kind: "privacy",
|
|
7535
7662
|
label: "Privacy and data",
|
|
7536
7663
|
position: g,
|
|
7537
7664
|
onClose: w,
|
|
7538
|
-
children: /* @__PURE__ */ Q(
|
|
7665
|
+
children: /* @__PURE__ */ Q(lc, {
|
|
7539
7666
|
identity: f,
|
|
7540
7667
|
apiUrl: e,
|
|
7541
7668
|
autoCapture: b && r?.enabled !== !1,
|
|
@@ -7546,21 +7673,21 @@ function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
|
|
|
7546
7673
|
onClose: w
|
|
7547
7674
|
})
|
|
7548
7675
|
}) : null,
|
|
7549
|
-
S === "shortcuts" ? /* @__PURE__ */ Q(
|
|
7676
|
+
S === "shortcuts" ? /* @__PURE__ */ Q(ac, {
|
|
7550
7677
|
kind: "shortcuts",
|
|
7551
7678
|
label: "Keyboard shortcuts",
|
|
7552
7679
|
position: g,
|
|
7553
7680
|
onClose: w,
|
|
7554
|
-
children: /* @__PURE__ */ Q(
|
|
7681
|
+
children: /* @__PURE__ */ Q(dc, { onClose: w })
|
|
7555
7682
|
}) : null,
|
|
7556
|
-
Se.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(
|
|
7557
|
-
z ? /* @__PURE__ */ Q(
|
|
7558
|
-
Ze ? /* @__PURE__ */ Q(
|
|
7683
|
+
Se.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(Mc, { position: g }) : null,
|
|
7684
|
+
z ? /* @__PURE__ */ Q(Nc, { position: g }) : null,
|
|
7685
|
+
Ze ? /* @__PURE__ */ Q(Pc, { position: g }) : null
|
|
7559
7686
|
]
|
|
7560
7687
|
});
|
|
7561
7688
|
}
|
|
7562
|
-
function
|
|
7563
|
-
let { mod: t } =
|
|
7689
|
+
function Mc({ position: e }) {
|
|
7690
|
+
let { mod: t } = Wo();
|
|
7564
7691
|
return /* @__PURE__ */ Q("div", {
|
|
7565
7692
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7566
7693
|
role: "status",
|
|
@@ -7579,7 +7706,7 @@ function Oc({ position: e }) {
|
|
|
7579
7706
|
]
|
|
7580
7707
|
});
|
|
7581
7708
|
}
|
|
7582
|
-
function
|
|
7709
|
+
function Nc({ position: e }) {
|
|
7583
7710
|
return /* @__PURE__ */ Q("div", {
|
|
7584
7711
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7585
7712
|
role: "status",
|
|
@@ -7587,7 +7714,7 @@ function kc({ position: e }) {
|
|
|
7587
7714
|
children: "Forgotten on this site — your name and email were cleared."
|
|
7588
7715
|
});
|
|
7589
7716
|
}
|
|
7590
|
-
function
|
|
7717
|
+
function Pc({ position: e }) {
|
|
7591
7718
|
return /* @__PURE__ */ Q("div", {
|
|
7592
7719
|
class: Z("markup-hud-hidden-toast", e === "bottom-left" ? "markup-hud-hidden-toast-left" : e === "bottom-center" ? "markup-hud-hidden-toast-center" : "markup-hud-hidden-toast-right"),
|
|
7593
7720
|
role: "status",
|
|
@@ -7597,7 +7724,7 @@ function Ac({ position: e }) {
|
|
|
7597
7724
|
}
|
|
7598
7725
|
//#endregion
|
|
7599
7726
|
//#region src/runtime/mount.tsx
|
|
7600
|
-
function
|
|
7727
|
+
function Fc(e, t) {
|
|
7601
7728
|
e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Re(e, t.theme ?? "auto");
|
|
7602
7729
|
let n = Ue(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
|
|
7603
7730
|
i.textContent = fe, r.appendChild(i);
|
|
@@ -7605,44 +7732,44 @@ function jc(e, t) {
|
|
|
7605
7732
|
a.className = "markup-shadow-root", r.appendChild(a), je({
|
|
7606
7733
|
apiUrl: t.apiUrl,
|
|
7607
7734
|
apiKey: t.apiKey,
|
|
7608
|
-
widgetVersion: "1.
|
|
7735
|
+
widgetVersion: "1.19.0"
|
|
7609
7736
|
}), be(t.analytics === !1 ? null : {
|
|
7610
7737
|
apiUrl: t.apiUrl,
|
|
7611
7738
|
apiKey: t.apiKey,
|
|
7612
|
-
widgetVersion: "1.
|
|
7739
|
+
widgetVersion: "1.19.0"
|
|
7613
7740
|
}), F("widget_loaded");
|
|
7614
7741
|
let { theme: o, analytics: s, ...c } = t;
|
|
7615
7742
|
return de(/* @__PURE__ */ Q(Ce, {
|
|
7616
7743
|
onError: (e) => I(e, { context: "render" }),
|
|
7617
|
-
children: /* @__PURE__ */ Q(
|
|
7744
|
+
children: /* @__PURE__ */ Q(jc, { ...c })
|
|
7618
7745
|
}), a), () => {
|
|
7619
7746
|
n(), je(null), be(null), de(null, a);
|
|
7620
7747
|
};
|
|
7621
7748
|
}
|
|
7622
7749
|
//#endregion
|
|
7623
7750
|
//#region src/widget.ts
|
|
7624
|
-
var
|
|
7625
|
-
function
|
|
7751
|
+
var Ic = null, Lc = null, Rc = null, zc = !1;
|
|
7752
|
+
function Bc(e) {
|
|
7626
7753
|
if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
|
|
7627
|
-
e.fab != null && !
|
|
7754
|
+
e.fab != null && !zc && (zc = !0, console.warn("[markup] the `fab` option is ignored and will be removed in the next major. The toolbar replaced the floating action button. Remove it from your config.")), Vc();
|
|
7628
7755
|
let t = () => {
|
|
7629
|
-
if (
|
|
7756
|
+
if (Rc = null, !document.body) return;
|
|
7630
7757
|
let t = document.createElement("div");
|
|
7631
|
-
t.id = "markup-widget", document.body.appendChild(t),
|
|
7758
|
+
t.id = "markup-widget", document.body.appendChild(t), Lc = t, Ic = Fc(t, e);
|
|
7632
7759
|
};
|
|
7633
7760
|
if (document.readyState === "loading" || !document.body) {
|
|
7634
7761
|
let e = () => t();
|
|
7635
|
-
|
|
7762
|
+
Rc = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
|
|
7636
7763
|
} else t();
|
|
7637
|
-
return
|
|
7764
|
+
return Vc;
|
|
7638
7765
|
}
|
|
7639
|
-
function
|
|
7640
|
-
|
|
7766
|
+
function Vc() {
|
|
7767
|
+
Rc &&= (Rc(), null), Ic &&= (Ic(), null), Lc?.parentNode && Lc.parentNode.removeChild(Lc), Lc = null;
|
|
7641
7768
|
}
|
|
7642
7769
|
if (typeof document < "u") {
|
|
7643
7770
|
let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
|
|
7644
7771
|
if (t && n) {
|
|
7645
|
-
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () =>
|
|
7772
|
+
let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Bc({
|
|
7646
7773
|
apiUrl: t,
|
|
7647
7774
|
apiKey: n,
|
|
7648
7775
|
position: r,
|
|
@@ -7655,6 +7782,6 @@ if (typeof document < "u") {
|
|
|
7655
7782
|
}
|
|
7656
7783
|
}
|
|
7657
7784
|
//#endregion
|
|
7658
|
-
export {
|
|
7785
|
+
export { Vc as destroy, Bc as init };
|
|
7659
7786
|
|
|
7660
7787
|
//# sourceMappingURL=widget.js.map
|