@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/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 ? xi(s) : void 0, l, u;
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 && bi(n)) return {
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
- return e.width !== 0 || e.height !== 0 || e.top !== 0 || e.left !== 0;
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 Si = class extends Error {
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
- }, Ci = class extends Si {
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
- }, wi = 15e3, J = 3e4;
3042
- function Ti(e, t) {
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 Ei(e) {
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: Ti(i.timeoutMs, i.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 Ci(i.operation, i.category) : e;
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 ? Di(f) : null;
3070
- if (!d.ok) throw d.status === 401 && (s || l) && e.onUnauthorized?.(), new Si((p && typeof p == "object" && "error" in p && typeof p.error == "string" ? p.error : null) ?? `Request failed with ${d.status}`, d.status);
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: wi,
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: wi,
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: wi,
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: wi,
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: wi,
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: wi,
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 Di(e) {
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 Oi = "markup.cookieProbe";
3237
- async function ki(e, t) {
3284
+ var ji = "markup.cookieProbe";
3285
+ async function Mi(e, t) {
3238
3286
  try {
3239
- let e = sessionStorage.getItem(Oi);
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: Ti(15e3)
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: Ti(wi)
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(Oi, i ? "supported" : "unsupported");
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 Ai = "__markup_history_observer__", ji = "__markup_history_listeners__";
3271
- function Mi(e) {
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 Ni = "__markup_history_restore__";
3281
- function Pi() {
3328
+ var Ii = "__markup_history_restore__";
3329
+ function Li() {
3282
3330
  let e = history.pushState;
3283
- if (e[Ai]) return {
3284
- listeners: e[ji],
3285
- restore: e[Ni]
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), Mi(t);
3337
+ n.apply(this, e), Fi(t);
3290
3338
  }
3291
3339
  function a(...e) {
3292
- r.apply(this, e), Mi(t);
3340
+ r.apply(this, e), Fi(t);
3293
3341
  }
3294
- let o = () => Mi(t), s = () => {
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, Ai, { value: 1 }), Object.defineProperty(i, ji, { value: t }), Object.defineProperty(i, Ni, { value: s }), Object.defineProperty(a, Ai, { value: 1 }), history.pushState = i, history.replaceState = a, window.addEventListener("popstate", o), {
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 Fi = null;
3303
- function Ii(e) {
3304
- Fi ||= Pi();
3305
- let t = Fi;
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(), Fi === t && (Fi = null)));
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 Li = /* @__PURE__ */ new Set(["http:", "https:"]);
3315
- function Ri(e, t) {
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 Li.has(n.protocol) ? n : null;
3370
+ return Bi.has(n.protocol) ? n : null;
3323
3371
  }
3324
3372
  //#endregion
3325
3373
  //#region src/runtime/identity-store.ts
3326
- var zi = "markup.identity";
3327
- function Bi() {
3374
+ var Hi = "markup.identity";
3375
+ function Ui() {
3328
3376
  try {
3329
- let e = localStorage.getItem(zi);
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 Vi(e) {
3336
- if (typeof e.image == "string") return Ri(e.image, location.href)?.href ?? void 0;
3383
+ function Wi(e) {
3384
+ if (typeof e.image == "string") return Vi(e.image, location.href)?.href ?? void 0;
3337
3385
  }
3338
- function Hi(e) {
3386
+ function Gi(e) {
3339
3387
  try {
3340
3388
  if (e == null) {
3341
- localStorage.removeItem(zi);
3389
+ localStorage.removeItem(Hi);
3342
3390
  return;
3343
3391
  }
3344
- localStorage.setItem(zi, JSON.stringify(e));
3392
+ localStorage.setItem(Hi, JSON.stringify(e));
3345
3393
  } catch {}
3346
3394
  }
3347
- function Ui() {
3348
- let e = Bi(), t = {
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: Vi(e)
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: Vi(e)
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 Wi(e) {
3458
+ function qi(e) {
3411
3459
  switch (e.kind) {
3412
3460
  case "verified":
3413
- Hi({
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
- Hi({
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
- Hi({
3483
+ Gi({
3436
3484
  name: e.preserved.name,
3437
3485
  email: e.preserved.email
3438
3486
  });
3439
3487
  return;
3440
3488
  case "unresolved":
3441
- Hi(null);
3489
+ Gi(null);
3442
3490
  return;
3443
3491
  }
3444
3492
  }
3445
- function Gi(e) {
3493
+ function Ji(e) {
3446
3494
  if (e.kind === "anon" || e.kind === "verified") return e.identity.clientId;
3447
3495
  }
3448
- function Ki(e) {
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 qi(e) {
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 Ji = "MARKUP_AUTH_RESULT", Yi = "MARKUP_AUTH_RETRY", Xi = "MARKUP_AUTH_EXPIRED", Zi = 5;
3467
- async function Qi(e) {
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: Ti(J)
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 >= Zi) {
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 === Yi) {
3566
+ if (r?.type === Qi) {
3519
3567
  s(!1);
3520
3568
  return;
3521
3569
  }
3522
- if (r?.type === Xi) {
3570
+ if (r?.type === $i) {
3523
3571
  s(!0);
3524
3572
  return;
3525
3573
  }
3526
- r?.type === Ji && (a(), r.identity?.id && r.identity?.name ? e({
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: Ti(J)
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 $i(e, t) {
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 ea = (() => {
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 ta(e) {
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 na = null;
3587
- function ra(e = {}) {
3588
- return na || (e.includeStyleProperties ? (na = e.includeStyleProperties, na) : (na = ta(window.getComputedStyle(document.documentElement)), na));
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 ia(e, t) {
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 aa(e) {
3595
- let t = ia(e, "border-left-width"), n = ia(e, "border-right-width");
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 oa(e) {
3599
- let t = ia(e, "border-top-width"), n = ia(e, "border-bottom-width");
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 sa(e, t = {}) {
3650
+ function ua(e, t = {}) {
3603
3651
  return {
3604
- width: t.width || aa(e),
3605
- height: t.height || oa(e)
3652
+ width: t.width || ca(e),
3653
+ height: t.height || la(e)
3606
3654
  };
3607
3655
  }
3608
- function ca() {
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 la(e) {
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 ua(e) {
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 da(e) {
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 fa(e, t, n) {
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), da(i);
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 pa(e) {
3692
+ function ga(e) {
3645
3693
  let t = e.getPropertyValue("content");
3646
3694
  return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
3647
3695
  }
3648
- function ma(e, t) {
3649
- return ra(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
3696
+ function _a(e, t) {
3697
+ return oa(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
3650
3698
  }
3651
- function ha(e, t, n, r) {
3652
- let i = `.${e}:${t}`, a = n.cssText ? pa(n) : ma(n, r);
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 ga(e, t, n, r) {
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 = ea();
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(ha(o, n, i, r)), t.appendChild(s);
3713
+ s.appendChild(va(o, n, i, r)), t.appendChild(s);
3666
3714
  }
3667
- function _a(e, t, n) {
3668
- ga(e, t, ":before", n), ga(e, t, ":after", n);
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 va = "application/font-woff", ya = "image/jpeg", ba = {
3673
- woff: va,
3674
- woff2: va,
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: ya,
3679
- jpeg: ya,
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 xa(e) {
3733
+ function wa(e) {
3686
3734
  let t = /\.([^./]*?)$/g.exec(e);
3687
3735
  return t ? t[1] : "";
3688
3736
  }
3689
- function Sa(e) {
3690
- return ba[xa(e).toLowerCase()] || "";
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 Ca(e) {
3742
+ function Ea(e) {
3695
3743
  return e.split(/,/)[1];
3696
3744
  }
3697
- function wa(e) {
3745
+ function Da(e) {
3698
3746
  return e.search(/^(data:)/) !== -1;
3699
3747
  }
3700
- function Ta(e, t) {
3748
+ function Oa(e, t) {
3701
3749
  return `data:${t};base64,${e}`;
3702
3750
  }
3703
- async function Ea(e, t, n) {
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 Da = {};
3722
- function Oa(e, t, n) {
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 ka(e, t, n) {
3727
- let r = Oa(e, t, n.includeQueryParams);
3728
- if (Da[r] != null) return Da[r];
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 = Ta(await Ea(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", Ca(n))), t);
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 Da[r] = i, i;
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 Aa(e) {
3790
+ async function Na(e) {
3743
3791
  let t = e.toDataURL();
3744
- return t === "data:," ? e.cloneNode(!1) : ua(t);
3792
+ return t === "data:," ? e.cloneNode(!1) : pa(t);
3745
3793
  }
3746
- async function ja(e, t) {
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), ua(t.toDataURL());
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 ua(await ka(n, Sa(n), t));
3800
+ return pa(await Ma(n, Ta(n), t));
3753
3801
  }
3754
- async function Ma(e, t) {
3802
+ async function Fa(e, t) {
3755
3803
  try {
3756
- if (e?.contentDocument?.body) return await Ha(e.contentDocument.body, t, !0);
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 Na(e, t) {
3761
- return X(e, HTMLCanvasElement) ? Aa(e) : X(e, HTMLVideoElement) ? ja(e, t) : X(e, HTMLIFrameElement) ? Ma(e, t) : e.cloneNode(Fa(e));
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 Pa = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", Fa = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
3764
- async function Ia(e, t, n) {
3765
- if (Fa(t)) return t;
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 = Pa(e) && e.assignedNodes ? ta(e.assignedNodes()) : X(e, HTMLIFrameElement) && e.contentDocument?.body ? ta(e.contentDocument.body.childNodes) : ta((e.shadowRoot ?? e).childNodes), r.length === 0 || X(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => Ha(r, n)).then((e) => {
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 La(e, t, n) {
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) : ra(n).forEach((n) => {
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 Ra(e, t) {
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 za(e, t) {
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 Ba(e, t, n) {
3790
- return X(t, Element) && (La(e, t, n), _a(e, t, n), Ra(e, t), za(e, t)), t;
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 Va(e, t) {
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 Ha(i, t, !0));
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 Ha(e, t, n) {
3815
- return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => Na(e, t)).then((n) => Ia(e, n, t)).then((n) => Ba(e, n, t)).then((e) => Va(e, t));
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 Ua = /url\((['"]?)([^'"]+?)\1\)/g, Wa = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, Ga = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
3820
- function Ka(e) {
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 qa(e) {
3872
+ function Xa(e) {
3825
3873
  let t = [];
3826
- return e.replace(Ua, (e, n, r) => (t.push(r), e)), t.filter((e) => !wa(e));
3874
+ return e.replace(Ka, (e, n, r) => (t.push(r), e)), t.filter((e) => !Da(e));
3827
3875
  }
3828
- async function Ja(e, t, n, r, i) {
3876
+ async function Za(e, t, n, r, i) {
3829
3877
  try {
3830
- let a = n ? $i(t, n) : t, o = Sa(t), s;
3831
- return s = i ? Ta(await i(a), o) : await ka(a, o, r), e.replace(Ka(t), `$1${s}$3`);
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 Ya(e, { preferredFontFormat: t }) {
3836
- return t ? e.replace(Ga, (e) => {
3883
+ function Qa(e, { preferredFontFormat: t }) {
3884
+ return t ? e.replace(Ja, (e) => {
3837
3885
  for (;;) {
3838
- let [n, , r] = Wa.exec(e) || [];
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 Xa(e) {
3845
- return e.search(Ua) !== -1;
3892
+ function $a(e) {
3893
+ return e.search(Ka) !== -1;
3846
3894
  }
3847
- async function Za(e, t, n) {
3848
- if (!Xa(e)) return e;
3849
- let r = Ya(e, n);
3850
- return qa(r).reduce((e, r) => e.then((e) => Ja(e, r, t, n)), Promise.resolve(r));
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 Qa(e, t, n) {
3902
+ async function to(e, t, n) {
3855
3903
  let r = t.style?.getPropertyValue(e);
3856
3904
  if (r) {
3857
- let i = await Za(r, null, n);
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 $a(e, t) {
3863
- await Qa("background", e, t) || await Qa("background-image", e, t), await Qa("mask", e, t) || await Qa("-webkit-mask", e, t) || await Qa("mask-image", e, t) || await Qa("-webkit-mask-image", e, t);
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 eo(e, t) {
3913
+ async function ro(e, t) {
3866
3914
  let n = X(e, HTMLImageElement);
3867
- if (!(n && !wa(e.src)) && !(X(e, SVGImageElement) && !wa(e.href.baseVal))) return;
3868
- let r = n ? e.src : e.href.baseVal, i = await ka(r, Sa(r), t);
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 to(e, t) {
3882
- let n = ta(e.childNodes).map((e) => no(e, t));
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 no(e, t) {
3886
- X(e, Element) && (await $a(e, t), await eo(e, t), await to(e, t));
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 ro(e, t) {
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 io = {};
3901
- async function ao(e) {
3902
- let t = io[e];
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
- }, io[e] = t, t);
3954
+ }, so[e] = t, t);
3907
3955
  }
3908
- async function oo(e, t) {
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), Ea(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
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 so(e) {
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 co(e, t) {
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
- ta(n.cssRules || []).forEach((e, i) => {
3987
+ ia(n.cssRules || []).forEach((e, i) => {
3940
3988
  if (e.type === CSSRule.IMPORT_RULE) {
3941
- let a = i + 1, o = e.href, s = ao(o).then((e) => oo(e, t)).then((e) => so(e).forEach((e) => {
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(ao(n.href).then((e) => oo(e, t)).then((e) => so(e).forEach((e) => {
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
- ta(e.cssRules || []).forEach((e) => {
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 lo(e) {
3975
- return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => Xa(e.style.getPropertyValue("src")));
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 uo(e, t) {
4025
+ async function mo(e, t) {
3978
4026
  if (e.ownerDocument == null) throw Error("Provided element is not within a Document");
3979
- return lo(await co(ta(e.ownerDocument.styleSheets), t));
4027
+ return po(await fo(ia(e.ownerDocument.styleSheets), t));
3980
4028
  }
3981
- function fo(e) {
4029
+ function ho(e) {
3982
4030
  return e.trim().replace(/["']/g, "");
3983
4031
  }
3984
- function po(e) {
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(fo(e));
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 mo(e, t) {
3996
- let n = await uo(e, t), r = po(e);
3997
- return (await Promise.all(n.filter((e) => r.has(fo(e.style.fontFamily))).map((e) => {
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 Za(e.cssText, n, t);
4047
+ return eo(e.cssText, n, t);
4000
4048
  }))).join("\n");
4001
4049
  }
4002
- async function ho(e, t) {
4003
- let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await mo(e, t) : t.fontEmbedCSS;
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 go(e, t = {}) {
4012
- let { width: n, height: r } = sa(e, t), i = await Ha(e, t, !0);
4013
- return await ho(i, t), await no(i, t), ro(i, t), await fa(i, n, r);
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 _o(e, t = {}) {
4016
- let { width: n, height: r } = sa(e, t), i = await ua(await go(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || ca(), c = t.canvasWidth || n, l = t.canvasHeight || r;
4017
- return a.width = c * s, a.height = l * s, t.skipAutoScale || la(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;
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 vo = 2097152, yo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", bo = [
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
- ], xo = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", So = "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\"]";
4039
- function Co(e) {
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 wo(e) {
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(So)) Co(e) || r(e);
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)) Co(t) || r(t);
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")) Co(e) || r(e);
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 To(e) {
4110
+ function Oo(e) {
4063
4111
  let t = e.getAttribute("style");
4064
- return e.setAttribute("style", t ? `${t};${xo}` : xo), () => {
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 Eo(e) {
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 Do(e, t, n) {
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 ? wo(n) : [], s = o.map(Eo), c = o.map(To), l;
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 _o(document.documentElement, {
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: yo,
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 && jo(e, t.x, t.y, a);
4146
+ e && Po(e, t.x, t.y, a);
4099
4147
  }
4100
- let u = await Ao(l);
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 Oo(e, t) {
4158
+ function jo(e, t) {
4111
4159
  return new Promise((n) => e.toBlob(n, "image/jpeg", t));
4112
4160
  }
4113
- function ko(e, t) {
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 Ao(e) {
4167
+ async function No(e) {
4120
4168
  let t = null;
4121
- for (let { quality: n, scale: r } of bo) {
4122
- let i = r === 1 ? e : ko(e, r);
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 Oo(i, n);
4172
+ let a = await jo(i, n);
4125
4173
  if (a) {
4126
- if (a.size <= vo) return a;
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 ${vo})`), { context: "screenshot-encode" }), null;
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 jo(e, t, n, r) {
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 Mo = Ur({
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
- }), No = 18e5, Po = 6e4, Fo = 6e4;
4162
- function Io(e) {
4163
- let [t, n] = Wr(Mo, { kind: "idle" });
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(Po, a.expiresAt - Date.now() - No);
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, Fo);
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 Lo(e) {
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: Ti(J, e.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 Ro = 6e4, zo = 500;
4226
- function Bo(e, t, n, r, i) {
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(zo, l - Ro - u), f = new AbortController(), p = window.setTimeout(async () => {
4236
- let a = await Lo({
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 Vo() {
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 Ho = 0;
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: --Ho,
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 Uo({ size: e = 16 }) {
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 Wo({ size: e = 16 }) {
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 Go({ size: e = 16 }) {
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 Ko({ size: e = 16 }) {
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 qo({ size: e = 16 }) {
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 Jo({ size: e = 16 }) {
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 Yo({ size: e = 16 }) {
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 Xo({ size: e = 16 }) {
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 Zo({ size: e = 16 }) {
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 Qo({ size: e = 16 }) {
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 $o({ size: e = 16 }) {
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 es({ size: e = 16 }) {
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 ts({ size: e = 16 }) {
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 ns({ size: e = 16 }) {
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 rs({ size: e = 16 }) {
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 is({ size: e = 16 }) {
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 as({ size: e = 16 }) {
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 os({ size: e = 16 }) {
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 ss({ size: e = 16 }) {
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 cs({ size: e = 16 }) {
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 ls({ size: e = 16 }) {
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 us({ size: e = 16 }) {
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 ds({ size: e = 16 }) {
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 fs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, onSignIn: a, onSignOut: o, onForgetMe: s }) {
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 = Ki(e), g = ps(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";
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(ls, { size: 14 })
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(ds, { size: 16 })
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(cs, { size: 16 })
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(ss, { size: 14 }), /* @__PURE__ */ Q("span", { children: n ? "Signing in…" : "Sign in" })]
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 ps(e) {
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 ms(e) {
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: hs(c + n, p, a),
4722
- top: hs(l + i, p, _)
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 hs(e, t, n) {
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 gs = [
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 _s(e, t) {
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(gs)), r = t[0], i = t[t.length - 1];
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 vs(e) {
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 ys({ isPending: e, isConnecting: t = !1, isSigningIn: n = !1, onSubmit: r, onCancel: i, onSignIn: a }) {
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 bs = "data-markup-mention", xs = "data-markup-mention-name", Ss = /* @__PURE__ */ new Set([
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
- ]), Cs = 3, ws = 1;
4866
- function Ts(e) {
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 === Cs) {
4920
+ if (o.nodeType === Es) {
4873
4921
  t += o.data;
4874
4922
  continue;
4875
4923
  }
4876
- if (o.nodeType !== ws) continue;
4877
- let s = o, c = s.getAttribute(bs);
4924
+ if (o.nodeType !== Ds) continue;
4925
+ let s = o, c = s.getAttribute(Cs);
4878
4926
  if (c) {
4879
- let e = Es(s);
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
- Ss.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
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 Es(e) {
4896
- return e.getAttribute(xs) || (e.textContent ?? "").replace(/^@/, "");
4943
+ function ks(e) {
4944
+ return e.getAttribute(ws) || (e.textContent ?? "").replace(/^@/, "");
4897
4945
  }
4898
- function Ds(e, t, n) {
4946
+ function As(e, t, n) {
4899
4947
  let r = e.createElement("span");
4900
- return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(bs, t.userId), r.setAttribute(xs, t.name), r.textContent = `@${t.name}`, r;
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 Os(e, t, n) {
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(Ds(e, {
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 ks(e) {
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 As(e) {
4921
- let t = ks(e);
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 !== Cs || !e.contains(n) || js(n, e) ? null : {
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 js(e, t) {
4977
+ function Ps(e, t) {
4930
4978
  let n = e;
4931
4979
  for (; n && n !== t;) {
4932
- if (n.nodeType === ws && n.hasAttribute("data-markup-mention")) return n;
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 Ms(e) {
4938
- let t = ks(e);
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 = js(n, e);
4990
+ let r = Ps(n, e);
4943
4991
  if (!r) return;
4944
4992
  let i = r.nextSibling;
4945
- (!i || i.nodeType !== Cs) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Ns(e, i, 0);
4993
+ (!i || i.nodeType !== Es) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Is(e, i, 0);
4946
4994
  }
4947
- function Ns(e, t, n) {
4948
- let r = ks(e);
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 Ps(e) {
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 Fs(e, t, n, r) {
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(Ds(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Ns(e, o, 1), !0;
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 Is(e, t) {
4971
- let n = ks(e);
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 === Cs) {
5025
+ if (i.nodeType === Es) {
4978
5026
  let n = i;
4979
- n.insertData(a, t), Ns(e, n, a + t.length);
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), Ns(e, o, o.data.length);
5031
+ r.insertNode(o), Is(e, o, o.data.length);
4984
5032
  }
4985
- function Ls(e, t) {
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 = Ts(e);
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 = As(e), r = n ? Ps(n) : null;
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(Os(n, r, t.chipClass)), o(Ts(e)), i = null, c(null);
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
- Ms(e), l();
5069
+ Fs(e), l();
5022
5070
  }, m = (t) => {
5023
5071
  let n = t.clipboardData?.getData("text/plain");
5024
- t.preventDefault(), n && (Is(e, n.replace(/\r\n?/g, "\n")), s(), l());
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: () => Ts(e),
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 === Cs ? Ns(e, t, t.data.length) : Ns(e, e, e.childNodes.length));
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 = As(e), o = (a ? Ps(a) : null) ?? r;
5038
- o && Fs(e, o, n, t.chipClass) && (s(), i = null, c(null));
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 Rs = null;
5054
- function zs() {
5055
- if (Rs) return Rs;
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", Rs = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5107
+ e.contentEditable = "plaintext-only", Vs = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5060
5108
  } catch {
5061
- Rs = "true";
5109
+ Vs = "true";
5062
5110
  }
5063
- return Rs;
5111
+ return Vs;
5064
5112
  }
5065
5113
  //#endregion
5066
5114
  //#region src/runtime/ui/mentions.tsx
5067
- function Bs({ body: e, mentions: t, trailing: n }) {
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 Vs(e) {
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 Hs({ items: e, highlight: t, setHighlight: n, onSelect: r }) {
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 Us({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
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 = Ls(e, {
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 _ = Vs({
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" : zs(),
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(Hs, {
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 Ws = 4e3;
5192
- function Gs({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, members: s }) {
5193
- let [c, l] = B(""), u = H(null), d = H(!1);
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
- d.current && !i && !a && (l(""), u.current?.focus()), d.current = i;
5196
- }, [i, a]);
5197
- let f = Ws - c.length, p = f < 0;
5198
- function m(e) {
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 = c.trim();
5201
- !t || i || p || o(t);
5252
+ let t = l.trim();
5253
+ !t || i || m || o(t);
5202
5254
  }
5203
- function h(e) {
5204
- (e.metaKey || e.ctrlKey) && e.key === "Enter" && m(e);
5255
+ function g(e) {
5256
+ (e.metaKey || e.ctrlKey) && e.key === "Enter" && h(e);
5205
5257
  }
5206
- let g = c.length > 0, _ = Vo();
5207
- function v(e) {
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 || !c.trim() || p,
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(Yo, { size: 14 })
5267
+ children: /* @__PURE__ */ Q(Qo, { size: 14 })
5216
5268
  });
5217
5269
  }
5218
5270
  return /* @__PURE__ */ Q("form", {
5219
- class: Z("markup-composer", g && "is-filled"),
5220
- onSubmit: m,
5271
+ class: Z("markup-composer", _ && "is-filled"),
5272
+ onSubmit: h,
5221
5273
  children: [
5222
- /* @__PURE__ */ Q(Us, {
5274
+ /* @__PURE__ */ Q(Ks, {
5223
5275
  class: "markup-composer-input",
5224
5276
  label: e,
5225
5277
  placeholder: t,
5226
- value: c,
5227
- onChange: l,
5228
- onKeyDown: h,
5229
- members: s,
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: u
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
- }) : p ? /* @__PURE__ */ Q("span", {
5297
+ }) : m ? /* @__PURE__ */ Q("span", {
5244
5298
  class: "markup-composer-error",
5245
- children: [Math.abs(f), " too long"]
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: _.mod
5303
+ children: v.mod
5250
5304
  }),
5251
5305
  /* @__PURE__ */ Q("kbd", {
5252
5306
  class: "markup-kbd is-inline",
5253
- children: _.enter
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: v(g ? void 0 : -1)
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": g || void 0,
5269
- children: v(g ? -1 : void 0)
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
- function Ks({ 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: _ }) {
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
- _s(v, !0);
5279
- let [y, b] = B(!1), [x, C] = B(!1), w = vs(c), [T, E] = B(null), { onPointerDown: D, isDragging: O } = ms({
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: E
5341
+ onMove: A
5283
5342
  });
5284
5343
  V(() => {
5285
5344
  let e = v.current;
5286
- if (!e) return;
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
- function t(e) {
5291
- e.newState === "closed" && _();
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
- return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
5294
- }, [_]);
5295
- let ee = qs(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), k = qs(t - window.scrollY - 16, 12, window.innerHeight - 220), A = typeof window < "u" ? window.location.href : "", j = c != null, te = l || j || u;
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", T && "is-floating", O && "is-dragging"),
5299
- popover: "auto",
5376
+ class: Z("markup-popover", k && "is-floating", te && "is-dragging"),
5377
+ popover: "manual",
5300
5378
  style: {
5301
- "--markup-pop-x": `${T?.left ?? ee}px`,
5302
- "--markup-pop-y": `${T?.top ?? k}px`
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: [/* @__PURE__ */ Q("header", {
5307
- class: "markup-popover-header",
5308
- onPointerDown: D,
5309
- children: [/* @__PURE__ */ Q("span", {
5310
- class: "markup-popover-title",
5311
- title: A,
5312
- children: "New comment"
5313
- }), /* @__PURE__ */ Q("button", {
5314
- type: "button",
5315
- class: "markup-icon-btn",
5316
- "aria-label": "Discard pin",
5317
- onClick: _,
5318
- children: /* @__PURE__ */ Q(Wo, { size: 16 })
5319
- })]
5320
- }), n == null ? /* @__PURE__ */ Q(ys, {
5321
- isPending: o,
5322
- isConnecting: i,
5323
- isSigningIn: a,
5324
- onSubmit: m,
5325
- onCancel: _,
5326
- onSignIn: h
5327
- }) : /* @__PURE__ */ Q("div", {
5328
- class: "markup-popover-body",
5329
- children: [
5330
- /* @__PURE__ */ Q("p", {
5331
- class: "markup-popover-byline",
5332
- children: [
5333
- "posting as ",
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
- /* @__PURE__ */ Q("input", {
5374
- type: "checkbox",
5375
- class: "markup-screenshot-checkbox",
5376
- checked: y,
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(Jo, { size: 12 }),
5380
- /* @__PURE__ */ Q("span", { children: "Attach screenshot" }),
5381
- w && y ? /* @__PURE__ */ Q("img", {
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
- }), y && j ? /* @__PURE__ */ Q(S, { children: [d > 0 ? /* @__PURE__ */ Q("div", {
5388
- class: "markup-screenshot-redacted",
5389
- children: [/* @__PURE__ */ Q("button", {
5390
- type: "button",
5391
- class: "markup-screenshot-redacted-chip",
5392
- onClick: () => C((e) => !e),
5393
- children: [
5394
- /* @__PURE__ */ Q("em", {
5395
- class: "markup-screenshot-redacted-arrow",
5396
- children: x ? "▾" : "▸"
5397
- }),
5398
- d,
5399
- " ",
5400
- d === 1 ? "field" : "fields",
5401
- " redacted"
5402
- ]
5403
- }), x ? /* @__PURE__ */ Q("div", {
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
- }) : null, /* @__PURE__ */ Q("p", {
5411
- class: "markup-screenshot-help",
5412
- children: [
5413
- "Password and credit-card fields are blacked out automatically. Add",
5414
- " ",
5415
- /* @__PURE__ */ Q("code", {
5416
- class: "markup-screenshot-help-code",
5417
- children: "data-markup-private"
5418
- }),
5419
- " to mask anything else."
5420
- ]
5421
- })] }) : null]
5422
- }) : null
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 qs(e, t, n) {
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 Js({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMarkAllRead: a, isMarkingAll: o }) {
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(Go, { size: 16 })
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(us, { size: 11 })
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: Ys(e.createdAt)
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 Ys(e) {
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 Xs() {
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 Zs({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, onOpenPrivacy: a, onOpenShortcuts: o, onHideForSession: s, version: c, dashboardUrl: l }) {
5564
- let [u, d] = B(!1), f = H(null), p = Xs();
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 } = Vo();
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(ts, { size: 16 })
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(ns, { size: 14 })
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(rs, { size: 14 })
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(is, { size: 14 })
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(Qs, { side: "left" })
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(Qs, { side: "center" })
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(Qs, { side: "right" })
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($s, {})
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(as, { size: 16 })
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(os, { size: 16 })
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(ec, {})
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(Uo, { size: 12 }),
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 Qs({ side: e }) {
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 $s() {
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 ec() {
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 tc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i, children: a }) {
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 nc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, onClick: a }) {
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 rc({ pageX: e, pageY: t }) {
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 ic({ onPlace: e, onCancel: t }) {
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 ac({ identity: e, apiUrl: t, autoCapture: n, autoCaptureLocked: r, isForgettingMe: i, forgetMeError: a, onForgetMe: o, onClose: s }) {
5951
- let [c, l] = B(!1), u = Ki(e), d = e.kind === "verified", f = d ? e.identity.email : void 0, p = e.kind === "anon";
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(Wo, { size: 14 })
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: oc(t)
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 oc(e) {
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 sc({ onClose: e }) {
6096
- let { mod: t, enter: n } = Vo();
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(Wo, { size: 14 })
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 cc = [
6310
+ var fc = [
6191
6311
  "👍",
6192
6312
  "❤️",
6193
6313
  "🎉",
6194
6314
  "😮",
6195
6315
  "😄",
6196
6316
  "❓"
6197
- ], lc = Ur({
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 uc({ 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 }) {
6254
- let b = H(null), x = H(null), S = H(null), C = H(null), [w, T] = Wr(lc, { kind: "none" }), [E, D] = B(null), { onPointerDown: O, isDragging: ee } = ms({
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
- _s(b, !0);
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: mc(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
6310
- top: mc(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
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(Ko, { size: 16 })
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(qo, { size: 16 })
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(Wo, { size: 16 })
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(hc, {
6518
+ /* @__PURE__ */ Q(yc, {
6399
6519
  name: t.authorName,
6400
6520
  image: t.authorImage,
6401
- tone: _c(t.authorClientId ?? t.authorName)
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(us, { size: 11 })
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: yc(t.createdAt),
6421
- children: vc(t.createdAt)
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: yc(t.editedAt),
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(dc, {
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(Ko, { size: 16 })
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(Us, {
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(Bs, {
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(fc, {
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(Wo, { size: 16 })
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(ys, {
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(Gs, {
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 dc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pickerRef: i, onPickerClick: a, onPickerSelect: o }) {
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(Xo, { size: 16 })
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: cc.map((t) => /* @__PURE__ */ Q("button", {
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 fc({ comment: e, isResolved: t, onToggle: n }) {
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 = pc(e.reactors, e.mine, e.count, e.emoji);
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 pc(e, t, n, r) {
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 mc(e, t, n) {
6815
+ function vc(e, t, n) {
6696
6816
  return Math.max(t, Math.min(n, e));
6697
6817
  }
6698
- function hc({ name: e, image: t, tone: n }) {
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: gc(e)
6834
+ children: bc(e)
6715
6835
  })
6716
6836
  });
6717
6837
  }
6718
- function gc(e) {
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 _c(e) {
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 vc(e) {
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 yc(e) {
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 bc({ 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 }) {
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 ? Wo : Zo, { size: 16 })
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(Qo, { size: 16 }), /* @__PURE__ */ Q("span", {
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 ? $o : es, { size: 16 })
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(ts, { size: 16 })
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 xc(e) {
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 : Ri(e.identity.image, location.href)?.href ?? 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 Sc() {
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 Cc() {
6989
+ function Dc() {
6870
6990
  return window.location.host + window.location.pathname;
6871
6991
  }
6872
- var wc = Ur({
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 Tc(e) {
6884
- return Wi(e), e;
7003
+ function kc(e) {
7004
+ return qi(e), e;
6885
7005
  }
6886
- var Ec = Ur({
7006
+ var Ac = Ur({
6887
7007
  unresolved: {
6888
- "mint-success": (e, t) => Tc({
7008
+ "mint-success": (e, t) => kc({
6889
7009
  kind: "anon",
6890
7010
  identity: t.identity
6891
7011
  }),
6892
- "signed-in": (e, t) => Tc({
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) => Tc({
7018
+ "signed-in": (e, t) => kc({
6899
7019
  kind: "verified",
6900
7020
  identity: t.identity
6901
7021
  }),
6902
- "author-set": (e, t) => Tc({
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": () => Tc({ kind: "unresolved" })
7030
+ "forget-me": () => kc({ kind: "unresolved" })
6911
7031
  },
6912
7032
  verified: {
6913
- "signed-in": (e, t) => Tc({
7033
+ "signed-in": (e, t) => kc({
6914
7034
  kind: "verified",
6915
7035
  identity: t.identity
6916
7036
  }),
6917
- unauthorized: (e) => Tc({
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": () => Tc({ kind: "unresolved" })
7044
+ "signed-out": () => kc({ kind: "unresolved" })
6925
7045
  },
6926
7046
  recovering: {
6927
- "mint-success": (e, t) => Tc({
7047
+ "mint-success": (e, t) => kc({
6928
7048
  kind: "anon",
6929
7049
  identity: t.identity
6930
7050
  }),
6931
- "signed-in": (e, t) => Tc({
7051
+ "signed-in": (e, t) => kc({
6932
7052
  kind: "verified",
6933
7053
  identity: t.identity
6934
7054
  })
6935
7055
  }
6936
7056
  });
6937
- function Dc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
6938
- let [a, o] = B(Cc), [s, c] = B([]), [l, u] = B(!1), d = it(() => Ui(), []), [f, p] = Wr(Ec, d.state), [m, h] = B(null);
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 ki(e, t).then((e) => {
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, Bo(f, e, t, (e) => p({
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(() => Ei({
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(wc, { kind: "visible" }), we = Se.kind !== "visible", [Te, Ee] = B(0), De = H(null), Oe = Ki(f), ke = f.kind === "verified", Ae = f.kind === "unresolved" || f.kind === "recovering", je = Gi(f);
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 = Io(E), [Me, Ne] = B(null);
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(() => Ii(() => o(Cc())), []), 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 || Sc() || (e.preventDefault(), Pe())));
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
- Do(s, {
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 = xc(await Qi({
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 = qi(f);
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 = Ri(e.threadUrl, window.location.href);
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 = qi(f);
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 = qi(f);
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 = it(() => s.map((e) => ({
7363
- thread: e,
7364
- point: yi({
7365
- anchorX: e.anchorX,
7366
- anchorY: e.anchorY,
7367
- anchorSelector: e.anchorSelector,
7368
- anchorOffsetX: e.anchorOffsetX,
7369
- anchorOffsetY: e.anchorOffsetY
7370
- })
7371
- })), [s, Te]), rt = H({
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
- rt.current = {
7377
- retryable: nt.some((e) => !e.point.resolved && e.thread.anchorSelector != null),
7378
- elements: nt.flatMap((e) => e.point.element ? [e.point.element] : [])
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
- }, [nt]);
7381
- let at = s.some((e) => e.anchorSelector != null);
7507
+ }, [rt]);
7508
+ let ot = s.some((e) => e.anchorSelector != null);
7382
7509
  return V(() => {
7383
- if (!at) return;
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 } = rt.current;
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
- }, [at]), V(() => {
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 ? nt.map(({ thread: e, point: t }) => {
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(nc, {
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(rc, {
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(ic, {
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(uc, {
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(Ks, {
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(bc, {
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(fs, {
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(Zs, {
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.18.6",
7638
+ version: "1.19.0",
7512
7639
  dashboardUrl: i
7513
7640
  })
7514
7641
  }) : null,
7515
- S === "inbox" && ke ? /* @__PURE__ */ Q(tc, {
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(Js, {
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(tc, {
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(ac, {
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(tc, {
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(sc, { onClose: w })
7681
+ children: /* @__PURE__ */ Q(dc, { onClose: w })
7555
7682
  }) : null,
7556
- Se.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(Oc, { position: g }) : null,
7557
- z ? /* @__PURE__ */ Q(kc, { position: g }) : null,
7558
- Ze ? /* @__PURE__ */ Q(Ac, { position: g }) : null
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 Oc({ position: e }) {
7563
- let { mod: t } = Vo();
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 kc({ position: e }) {
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 Ac({ position: e }) {
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 jc(e, t) {
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.18.6"
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.18.6"
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(Dc, { ...c })
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 Mc = null, Nc = null, Pc = null, Fc = !1;
7625
- function Ic(e) {
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 && !Fc && (Fc = !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.")), Lc();
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 (Pc = null, !document.body) return;
7756
+ if (Rc = null, !document.body) return;
7630
7757
  let t = document.createElement("div");
7631
- t.id = "markup-widget", document.body.appendChild(t), Nc = t, Mc = jc(t, e);
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
- Pc = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
7762
+ Rc = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
7636
7763
  } else t();
7637
- return Lc;
7764
+ return Vc;
7638
7765
  }
7639
- function Lc() {
7640
- Pc &&= (Pc(), null), Mc &&= (Mc(), null), Nc?.parentNode && Nc.parentNode.removeChild(Nc), Nc = null;
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 = () => Ic({
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 { Lc as destroy, Ic as init };
7785
+ export { Vc as destroy, Bc as init };
7659
7786
 
7660
7787
  //# sourceMappingURL=widget.js.map