@pixelmatters/markup 1.22.0 → 1.24.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.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.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);pointer-events:none;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-author-copy{color:var(--markup-fg);margin:0;font-size:13px;line-height:1.5}.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-link{border:1px solid var(--markup-border-strong);cursor:zoom-in;background:0 0;border-radius:3px;margin:-4px auto -4px -4px;padding:0;transition:border-color .12s;display:block;overflow:hidden}.markup-screenshot-thumb-link:hover,.markup-screenshot-thumb-link:focus-visible{border-color:var(--markup-brand)}.markup-screenshot-thumb{object-fit:cover;object-position:top;width:auto;height:22px;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;box-sizing:border-box;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;padding:4px;list-style:none;position:fixed;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, me = 20, he = 60, N = null, P = [], ge = 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.is-closed,.markup-pin.is-closed.is-active{background:var(--markup-paper);color:var(--markup-muted);border-color:var(--markup-muted);box-shadow:0 4px 14px -4px #00000040}.markup-pin.is-closed:hover{background:var(--markup-paper);color:var(--markup-ink)}.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);pointer-events:none;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-link{color:var(--markup-brand);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--markup-brand) 40%, transparent)}.markup-comment-link:hover{-webkit-text-decoration-color:var(--markup-brand);text-decoration-color:var(--markup-brand)}.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-author-copy{color:var(--markup-fg);margin:0;font-size:13px;line-height:1.5}.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-link{border:1px solid var(--markup-border-strong);cursor:zoom-in;background:0 0;border-radius:3px;margin:-4px auto -4px -4px;padding:0;transition:border-color .12s;display:block;overflow:hidden}.markup-screenshot-thumb-link:hover,.markup-screenshot-thumb-link:focus-visible{border-color:var(--markup-brand)}.markup-screenshot-thumb{object-fit:cover;object-position:top;width:auto;height:22px;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;box-sizing:border-box;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;padding:4px;list-style:none;position:fixed;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, me = 20, he = 60, N = null, P = [], ge = 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
  }
@@ -374,51 +374,51 @@ function F(e, t) {
374
374
  }
375
375
  //#endregion
376
376
  //#region src/runtime/theme-store.ts
377
- var Ne = "markup:widget:theme", Pe = null, I = Le() ?? "auto", Fe = Le() != null, Ie = /* @__PURE__ */ new Set();
378
- function Le() {
377
+ var Ne = "markup:widget:theme", Pe = null, Fe = Re() ?? "auto", Ie = Re() != null, Le = /* @__PURE__ */ new Set();
378
+ function Re() {
379
379
  try {
380
380
  let e = localStorage.getItem(Ne);
381
381
  if (e === "light" || e === "dark" || e === "auto") return e;
382
382
  } catch {}
383
383
  return null;
384
384
  }
385
- function Re() {
386
- Pe && (I === "auto" ? delete Pe.dataset.theme : Pe.dataset.theme = I);
387
- }
388
- function ze(e, t) {
389
- Pe = e, !Fe && t && (I = t), Re();
385
+ function ze() {
386
+ Pe && (Fe === "auto" ? delete Pe.dataset.theme : Pe.dataset.theme = Fe);
390
387
  }
391
- function Be() {
392
- return I;
388
+ function Be(e, t) {
389
+ Pe = e, !Ie && t && (Fe = t), ze();
393
390
  }
394
391
  function Ve() {
395
- return I === "dark" ? "dark" : I === "light" ? "light" : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
392
+ return Fe;
393
+ }
394
+ function He() {
395
+ return Fe === "dark" ? "dark" : Fe === "light" ? "light" : typeof window < "u" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
396
396
  }
397
- function He(e) {
398
- if (e !== I) {
399
- I = e, Fe = !0;
397
+ function Ue(e) {
398
+ if (e !== Fe) {
399
+ Fe = e, Ie = !0;
400
400
  try {
401
401
  localStorage.setItem(Ne, e);
402
402
  } catch {}
403
- Re();
404
- for (let e of Ie) e(I);
403
+ ze();
404
+ for (let e of Le) e(Fe);
405
405
  }
406
406
  }
407
- function Ue(e) {
408
- return Ie.add(e), () => {
409
- Ie.delete(e);
407
+ function We(e) {
408
+ return Le.add(e), () => {
409
+ Le.delete(e);
410
410
  };
411
411
  }
412
- function We() {
412
+ function Ge() {
413
413
  if (typeof window > "u" || !window.matchMedia) return () => {};
414
414
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = () => {
415
- if (I === "auto") for (let e of Ie) e(I);
415
+ if (Fe === "auto") for (let e of Le) e(Fe);
416
416
  };
417
417
  return e.addEventListener?.("change", t), () => e.removeEventListener?.("change", t);
418
418
  }
419
419
  //#endregion
420
420
  //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/hooks/dist/hooks.module.js
421
- var Ge, L, Ke, qe, Je = 0, Ye = [], R = t, Xe = R.__b, Ze = R.__r, Qe = R.diffed, $e = R.__c, et = R.unmount, tt = R.__;
421
+ var I, L, Ke, qe, Je = 0, Ye = [], R = t, Xe = R.__b, Ze = R.__r, Qe = R.diffed, $e = R.__c, et = R.unmount, tt = R.__;
422
422
  function nt(e, t) {
423
423
  R.__h && R.__h(L, e, Je || t), Je = 0;
424
424
  var n = L.__H || (L.__H = {
@@ -431,7 +431,7 @@ function z(e) {
431
431
  return Je = 1, rt(ft, e);
432
432
  }
433
433
  function rt(e, t, n) {
434
- var r = nt(Ge++, 2);
434
+ var r = nt(I++, 2);
435
435
  if (r.t = e, !r.__c && (r.__ = [n ? n(t) : ft(void 0, t), function(e) {
436
436
  var t = r.__N ? r.__N[0] : r.__[0], n = r.t(t, e);
437
437
  t !== n && (r.__N = [n, r.__[1]], r.__c.setState({}));
@@ -464,11 +464,11 @@ function rt(e, t, n) {
464
464
  return r.__N || r.__;
465
465
  }
466
466
  function B(e, t) {
467
- var n = nt(Ge++, 3);
467
+ var n = nt(I++, 3);
468
468
  !R.__s && dt(n.__H, t) && (n.__ = e, n.u = t, L.__H.__h.push(n));
469
469
  }
470
470
  function it(e, t) {
471
- var n = nt(Ge++, 4);
471
+ var n = nt(I++, 4);
472
472
  !R.__s && dt(n.__H, t) && (n.__ = e, n.u = t, L.__h.push(n));
473
473
  }
474
474
  function V(e) {
@@ -477,7 +477,7 @@ function V(e) {
477
477
  }, []);
478
478
  }
479
479
  function at(e, t) {
480
- var n = nt(Ge++, 7);
480
+ var n = nt(I++, 7);
481
481
  return dt(n.__H, t) && (n.__ = e(), n.__H = t, n.__h = e), n.__;
482
482
  }
483
483
  function H(e, t) {
@@ -500,11 +500,11 @@ R.__b = function(e) {
500
500
  }, R.__ = function(e, t) {
501
501
  e && t.__k && t.__k.__m && (e.__m = t.__k.__m), tt && tt(e, t);
502
502
  }, R.__r = function(e) {
503
- Ze && Ze(e), Ge = 0;
503
+ Ze && Ze(e), I = 0;
504
504
  var t = (L = e.__c).__H;
505
505
  t && (Ke === L ? (t.__h = [], L.__h = [], t.__.some(function(e) {
506
506
  e.__N && (e.__ = e.__N), e.u = e.__N = void 0;
507
- })) : (t.__h.some(lt), t.__h.some(ut), t.__h = [], Ge = 0)), Ke = L;
507
+ })) : (t.__h.some(lt), t.__h.some(ut), t.__h = [], I = 0)), Ke = L;
508
508
  }, R.diffed = function(e) {
509
509
  Qe && Qe(e);
510
510
  var t = e.__c;
@@ -3302,9 +3302,9 @@ function Ui() {
3302
3302
  r.apply(this, e), Vi(t);
3303
3303
  }
3304
3304
  let o = () => Vi(t), s = () => {
3305
- history.pushState === i && (history.pushState = n), history.replaceState === a && (history.replaceState = r), window.removeEventListener("popstate", o), t.clear();
3305
+ history.pushState === i && (history.pushState = n), history.replaceState === a && (history.replaceState = r), window.removeEventListener("popstate", o), window.removeEventListener("hashchange", o), t.clear();
3306
3306
  };
3307
- return Object.defineProperty(i, zi, { value: 1 }), Object.defineProperty(i, Bi, { value: t }), Object.defineProperty(i, Hi, { value: s }), Object.defineProperty(a, zi, { value: 1 }), history.pushState = i, history.replaceState = a, window.addEventListener("popstate", o), {
3307
+ return Object.defineProperty(i, zi, { value: 1 }), Object.defineProperty(i, Bi, { value: t }), Object.defineProperty(i, Hi, { value: s }), Object.defineProperty(a, zi, { value: 1 }), history.pushState = i, history.replaceState = a, window.addEventListener("popstate", o), window.addEventListener("hashchange", o), {
3308
3308
  listeners: t,
3309
3309
  restore: s
3310
3310
  };
@@ -3576,46 +3576,88 @@ async function sa(e) {
3576
3576
  return d;
3577
3577
  }
3578
3578
  //#endregion
3579
+ //#region src/runtime/route.ts
3580
+ var ca = "markup-thread", la = /^#markup-thread=(.+)$/, ua = /^#!?\//;
3581
+ function da(e) {
3582
+ if (!ua.test(e)) return "";
3583
+ let t = e.slice(1).split("?")[0]?.split("#")[0] ?? "";
3584
+ return t === "/" || t === "!/" ? "" : `#${t}`;
3585
+ }
3586
+ function fa() {
3587
+ let { host: e, pathname: t, hash: n } = window.location;
3588
+ return e + t + da(n);
3589
+ }
3590
+ function pa() {
3591
+ let e = new URLSearchParams(window.location.search).get(ca);
3592
+ if (e) return e;
3593
+ let t = la.exec(window.location.hash)?.[1];
3594
+ if (t === void 0) return null;
3595
+ try {
3596
+ return decodeURIComponent(t);
3597
+ } catch {
3598
+ return t;
3599
+ }
3600
+ }
3601
+ function ma(e) {
3602
+ if (e === "") return "";
3603
+ let t = e.slice(1).split("&").filter((e) => e !== "markup-thread" && !e.startsWith("markup-thread="));
3604
+ return t.length > 0 ? `?${t.join("&")}` : "";
3605
+ }
3606
+ function ha() {
3607
+ let { pathname: e, search: t, hash: n } = window.location, r = la.test(n) ? "" : n;
3608
+ history.replaceState(history.state, "", e + ma(t) + r);
3609
+ }
3610
+ function ga(e) {
3611
+ let t = e.hash === "" ? e.href.replace(/#$/, "") : e.href.slice(0, e.href.length - e.hash.length);
3612
+ return e.search === "" ? t.replace(/\?$/, "") : t.slice(0, t.length - e.search.length);
3613
+ }
3614
+ function _a(e, t) {
3615
+ let n = qi(e, window.location.href);
3616
+ if (!n) return null;
3617
+ let r = ma(n.search), i = r === "" ? "?" : "&", a = `${ca}=${encodeURIComponent(t)}`;
3618
+ return `${ga(n)}${r}${i}${a}${n.hash}`;
3619
+ }
3620
+ //#endregion
3579
3621
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/util.js
3580
- function ca(e, t) {
3622
+ function va(e, t) {
3581
3623
  if (e.match(/^[a-z]+:\/\//i)) return e;
3582
3624
  if (e.match(/^\/\//)) return window.location.protocol + e;
3583
3625
  if (e.match(/^[a-z]+:/i)) return e;
3584
3626
  let n = document.implementation.createHTMLDocument(), r = n.createElement("base"), i = n.createElement("a");
3585
3627
  return n.head.appendChild(r), n.body.appendChild(i), t && (r.href = t), i.href = e, i.href;
3586
3628
  }
3587
- var la = (() => {
3629
+ var ya = (() => {
3588
3630
  let e = 0, t = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);
3589
3631
  return () => (e += 1, `u${t()}${e}`);
3590
3632
  })();
3591
- function ua(e) {
3633
+ function ba(e) {
3592
3634
  let t = [];
3593
3635
  for (let n = 0, r = e.length; n < r; n++) t.push(e[n]);
3594
3636
  return t;
3595
3637
  }
3596
- var da = null;
3597
- function fa(e = {}) {
3598
- return da || (e.includeStyleProperties ? (da = e.includeStyleProperties, da) : (da = ua(window.getComputedStyle(document.documentElement)), da));
3638
+ var xa = null;
3639
+ function Sa(e = {}) {
3640
+ return xa || (e.includeStyleProperties ? (xa = e.includeStyleProperties, xa) : (xa = ba(window.getComputedStyle(document.documentElement)), xa));
3599
3641
  }
3600
- function pa(e, t) {
3642
+ function Ca(e, t) {
3601
3643
  let n = (e.ownerDocument.defaultView || window).getComputedStyle(e).getPropertyValue(t);
3602
3644
  return n ? parseFloat(n.replace("px", "")) : 0;
3603
3645
  }
3604
- function ma(e) {
3605
- let t = pa(e, "border-left-width"), n = pa(e, "border-right-width");
3646
+ function wa(e) {
3647
+ let t = Ca(e, "border-left-width"), n = Ca(e, "border-right-width");
3606
3648
  return e.clientWidth + t + n;
3607
3649
  }
3608
- function ha(e) {
3609
- let t = pa(e, "border-top-width"), n = pa(e, "border-bottom-width");
3650
+ function Ta(e) {
3651
+ let t = Ca(e, "border-top-width"), n = Ca(e, "border-bottom-width");
3610
3652
  return e.clientHeight + t + n;
3611
3653
  }
3612
- function ga(e, t = {}) {
3654
+ function Ea(e, t = {}) {
3613
3655
  return {
3614
- width: t.width || ma(e),
3615
- height: t.height || ha(e)
3656
+ width: t.width || wa(e),
3657
+ height: t.height || Ta(e)
3616
3658
  };
3617
3659
  }
3618
- function _a() {
3660
+ function Da() {
3619
3661
  let e, t;
3620
3662
  try {
3621
3663
  t = process;
@@ -3624,10 +3666,10 @@ function _a() {
3624
3666
  return n && (e = parseInt(n, 10), Number.isNaN(e) && (e = 1)), e || window.devicePixelRatio || 1;
3625
3667
  }
3626
3668
  var Y = 16384;
3627
- function va(e) {
3669
+ function Oa(e) {
3628
3670
  (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));
3629
3671
  }
3630
- function ya(e) {
3672
+ function ka(e) {
3631
3673
  return new Promise((t, n) => {
3632
3674
  let r = new Image();
3633
3675
  r.onload = () => {
@@ -3637,12 +3679,12 @@ function ya(e) {
3637
3679
  }, r.onerror = n, r.crossOrigin = "anonymous", r.decoding = "async", r.src = e;
3638
3680
  });
3639
3681
  }
3640
- async function ba(e) {
3682
+ async function Aa(e) {
3641
3683
  return Promise.resolve().then(() => new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then((e) => `data:image/svg+xml;charset=utf-8,${e}`);
3642
3684
  }
3643
- async function xa(e, t, n) {
3685
+ async function ja(e, t, n) {
3644
3686
  let r = "http://www.w3.org/2000/svg", i = document.createElementNS(r, "svg"), a = document.createElementNS(r, "foreignObject");
3645
- 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), ba(i);
3687
+ 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), Aa(i);
3646
3688
  }
3647
3689
  var X = (e, t) => {
3648
3690
  if (e instanceof t) return !0;
@@ -3651,66 +3693,66 @@ var X = (e, t) => {
3651
3693
  };
3652
3694
  //#endregion
3653
3695
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-pseudos.js
3654
- function Sa(e) {
3696
+ function Ma(e) {
3655
3697
  let t = e.getPropertyValue("content");
3656
3698
  return `${e.cssText} content: '${t.replace(/'|"/g, "")}';`;
3657
3699
  }
3658
- function Ca(e, t) {
3659
- return fa(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
3700
+ function Na(e, t) {
3701
+ return Sa(t).map((t) => `${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t) ? " !important" : ""};`).join(" ");
3660
3702
  }
3661
- function wa(e, t, n, r) {
3662
- let i = `.${e}:${t}`, a = n.cssText ? Sa(n) : Ca(n, r);
3703
+ function Pa(e, t, n, r) {
3704
+ let i = `.${e}:${t}`, a = n.cssText ? Ma(n) : Na(n, r);
3663
3705
  return document.createTextNode(`${i}{${a}}`);
3664
3706
  }
3665
- function Ta(e, t, n, r) {
3707
+ function Fa(e, t, n, r) {
3666
3708
  let i = window.getComputedStyle(e, n), a = i.getPropertyValue("content");
3667
3709
  if (a === "" || a === "none") return;
3668
- let o = la();
3710
+ let o = ya();
3669
3711
  try {
3670
3712
  t.className = `${t.className} ${o}`;
3671
3713
  } catch {
3672
3714
  return;
3673
3715
  }
3674
3716
  let s = document.createElement("style");
3675
- s.appendChild(wa(o, n, i, r)), t.appendChild(s);
3717
+ s.appendChild(Pa(o, n, i, r)), t.appendChild(s);
3676
3718
  }
3677
- function Ea(e, t, n) {
3678
- Ta(e, t, ":before", n), Ta(e, t, ":after", n);
3719
+ function Ia(e, t, n) {
3720
+ Fa(e, t, ":before", n), Fa(e, t, ":after", n);
3679
3721
  }
3680
3722
  //#endregion
3681
3723
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/mimes.js
3682
- var Da = "application/font-woff", Oa = "image/jpeg", ka = {
3683
- woff: Da,
3684
- woff2: Da,
3724
+ var La = "application/font-woff", Ra = "image/jpeg", za = {
3725
+ woff: La,
3726
+ woff2: La,
3685
3727
  ttf: "application/font-truetype",
3686
3728
  eot: "application/vnd.ms-fontobject",
3687
3729
  png: "image/png",
3688
- jpg: Oa,
3689
- jpeg: Oa,
3730
+ jpg: Ra,
3731
+ jpeg: Ra,
3690
3732
  gif: "image/gif",
3691
3733
  tiff: "image/tiff",
3692
3734
  svg: "image/svg+xml",
3693
3735
  webp: "image/webp"
3694
3736
  };
3695
- function Aa(e) {
3737
+ function Ba(e) {
3696
3738
  let t = /\.([^./]*?)$/g.exec(e);
3697
3739
  return t ? t[1] : "";
3698
3740
  }
3699
- function ja(e) {
3700
- return ka[Aa(e).toLowerCase()] || "";
3741
+ function Va(e) {
3742
+ return za[Ba(e).toLowerCase()] || "";
3701
3743
  }
3702
3744
  //#endregion
3703
3745
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/dataurl.js
3704
- function Ma(e) {
3746
+ function Ha(e) {
3705
3747
  return e.split(/,/)[1];
3706
3748
  }
3707
- function Na(e) {
3749
+ function Ua(e) {
3708
3750
  return e.search(/^(data:)/) !== -1;
3709
3751
  }
3710
- function Pa(e, t) {
3752
+ function Wa(e, t) {
3711
3753
  return `data:${t};base64,${e}`;
3712
3754
  }
3713
- async function Fa(e, t, n) {
3755
+ async function Ga(e, t, n) {
3714
3756
  let r = await fetch(e, t);
3715
3757
  if (r.status === 404) throw Error(`Resource "${r.url}" not found`);
3716
3758
  let i = await r.blob();
@@ -3728,78 +3770,78 @@ async function Fa(e, t, n) {
3728
3770
  }, a.readAsDataURL(i);
3729
3771
  });
3730
3772
  }
3731
- var Ia = {};
3732
- function La(e, t, n) {
3773
+ var Ka = {};
3774
+ function qa(e, t, n) {
3733
3775
  let r = e.replace(/\?.*/, "");
3734
3776
  return n && (r = e), /ttf|otf|eot|woff2?/i.test(r) && (r = r.replace(/.*\//, "")), t ? `[${t}]${r}` : r;
3735
3777
  }
3736
- async function Ra(e, t, n) {
3737
- let r = La(e, t, n.includeQueryParams);
3738
- if (Ia[r] != null) return Ia[r];
3778
+ async function Ja(e, t, n) {
3779
+ let r = qa(e, t, n.includeQueryParams);
3780
+ if (Ka[r] != null) return Ka[r];
3739
3781
  n.cacheBust && (e += (/\?/.test(e) ? "&" : "?") + (/* @__PURE__ */ new Date()).getTime());
3740
3782
  let i;
3741
3783
  try {
3742
- i = Pa(await Fa(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", Ma(n))), t);
3784
+ i = Wa(await Ga(e, n.fetchRequestInit, ({ res: e, result: n }) => (t ||= e.headers.get("Content-Type") || "", Ha(n))), t);
3743
3785
  } catch (t) {
3744
3786
  i = n.imagePlaceholder || "";
3745
3787
  let r = `Failed to fetch resource: ${e}`;
3746
3788
  t && (r = typeof t == "string" ? t : t.message), r && console.warn(r);
3747
3789
  }
3748
- return Ia[r] = i, i;
3790
+ return Ka[r] = i, i;
3749
3791
  }
3750
3792
  //#endregion
3751
3793
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/clone-node.js
3752
- async function za(e) {
3794
+ async function Ya(e) {
3753
3795
  let t = e.toDataURL();
3754
- return t === "data:," ? e.cloneNode(!1) : ya(t);
3796
+ return t === "data:," ? e.cloneNode(!1) : ka(t);
3755
3797
  }
3756
- async function Ba(e, t) {
3798
+ async function Xa(e, t) {
3757
3799
  if (e.currentSrc) {
3758
3800
  let t = document.createElement("canvas"), n = t.getContext("2d");
3759
- return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height), ya(t.toDataURL());
3801
+ return t.width = e.clientWidth, t.height = e.clientHeight, n?.drawImage(e, 0, 0, t.width, t.height), ka(t.toDataURL());
3760
3802
  }
3761
3803
  let n = e.poster;
3762
- return ya(await Ra(n, ja(n), t));
3804
+ return ka(await Ja(n, Va(n), t));
3763
3805
  }
3764
- async function Va(e, t) {
3806
+ async function Za(e, t) {
3765
3807
  try {
3766
- if (e?.contentDocument?.body) return await Za(e.contentDocument.body, t, !0);
3808
+ if (e?.contentDocument?.body) return await so(e.contentDocument.body, t, !0);
3767
3809
  } catch {}
3768
3810
  return e.cloneNode(!1);
3769
3811
  }
3770
- async function Ha(e, t) {
3771
- return X(e, HTMLCanvasElement) ? za(e) : X(e, HTMLVideoElement) ? Ba(e, t) : X(e, HTMLIFrameElement) ? Va(e, t) : e.cloneNode(Wa(e));
3812
+ async function Qa(e, t) {
3813
+ return X(e, HTMLCanvasElement) ? Ya(e) : X(e, HTMLVideoElement) ? Xa(e, t) : X(e, HTMLIFrameElement) ? Za(e, t) : e.cloneNode(eo(e));
3772
3814
  }
3773
- var Ua = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", Wa = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
3774
- async function Ga(e, t, n) {
3775
- if (Wa(t)) return t;
3815
+ var $a = (e) => e.tagName != null && e.tagName.toUpperCase() === "SLOT", eo = (e) => e.tagName != null && e.tagName.toUpperCase() === "SVG";
3816
+ async function to(e, t, n) {
3817
+ if (eo(t)) return t;
3776
3818
  let r = [];
3777
- return r = Ua(e) && e.assignedNodes ? ua(e.assignedNodes()) : X(e, HTMLIFrameElement) && e.contentDocument?.body ? ua(e.contentDocument.body.childNodes) : ua((e.shadowRoot ?? e).childNodes), r.length === 0 || X(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => Za(r, n)).then((e) => {
3819
+ return r = $a(e) && e.assignedNodes ? ba(e.assignedNodes()) : X(e, HTMLIFrameElement) && e.contentDocument?.body ? ba(e.contentDocument.body.childNodes) : ba((e.shadowRoot ?? e).childNodes), r.length === 0 || X(e, HTMLVideoElement) || await r.reduce((e, r) => e.then(() => so(r, n)).then((e) => {
3778
3820
  e && t.appendChild(e);
3779
3821
  }), Promise.resolve()), t;
3780
3822
  }
3781
- function Ka(e, t, n) {
3823
+ function no(e, t, n) {
3782
3824
  let r = t.style;
3783
3825
  if (!r) return;
3784
3826
  let i = window.getComputedStyle(e);
3785
- i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : fa(n).forEach((n) => {
3827
+ i.cssText ? (r.cssText = i.cssText, r.transformOrigin = i.transformOrigin) : Sa(n).forEach((n) => {
3786
3828
  let a = i.getPropertyValue(n);
3787
3829
  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));
3788
3830
  });
3789
3831
  }
3790
- function qa(e, t) {
3832
+ function ro(e, t) {
3791
3833
  X(e, HTMLTextAreaElement) && (t.innerHTML = e.value), X(e, HTMLInputElement) && t.setAttribute("value", e.value);
3792
3834
  }
3793
- function Ja(e, t) {
3835
+ function io(e, t) {
3794
3836
  if (X(e, HTMLSelectElement)) {
3795
3837
  let n = t, r = Array.from(n.children).find((t) => e.value === t.getAttribute("value"));
3796
3838
  r && r.setAttribute("selected", "");
3797
3839
  }
3798
3840
  }
3799
- function Ya(e, t, n) {
3800
- return X(t, Element) && (Ka(e, t, n), Ea(e, t, n), qa(e, t), Ja(e, t)), t;
3841
+ function ao(e, t, n) {
3842
+ return X(t, Element) && (no(e, t, n), Ia(e, t, n), ro(e, t), io(e, t)), t;
3801
3843
  }
3802
- async function Xa(e, t) {
3844
+ async function oo(e, t) {
3803
3845
  let n = e.querySelectorAll ? e.querySelectorAll("use") : [];
3804
3846
  if (n.length === 0) return e;
3805
3847
  let r = {};
@@ -3807,7 +3849,7 @@ async function Xa(e, t) {
3807
3849
  let a = n[i].getAttribute("xlink:href");
3808
3850
  if (a) {
3809
3851
  let n = e.querySelector(a), i = document.querySelector(a);
3810
- !n && i && !r[a] && (r[a] = await Za(i, t, !0));
3852
+ !n && i && !r[a] && (r[a] = await so(i, t, !0));
3811
3853
  }
3812
3854
  }
3813
3855
  let i = Object.values(r);
@@ -3821,61 +3863,61 @@ async function Xa(e, t) {
3821
3863
  }
3822
3864
  return e;
3823
3865
  }
3824
- async function Za(e, t, n) {
3825
- return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => Ha(e, t)).then((n) => Ga(e, n, t)).then((n) => Ya(e, n, t)).then((e) => Xa(e, t));
3866
+ async function so(e, t, n) {
3867
+ return !n && t.filter && !t.filter(e) ? null : Promise.resolve(e).then((e) => Qa(e, t)).then((n) => to(e, n, t)).then((n) => ao(e, n, t)).then((e) => oo(e, t));
3826
3868
  }
3827
3869
  //#endregion
3828
3870
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-resources.js
3829
- var Qa = /url\((['"]?)([^'"]+?)\1\)/g, $a = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, eo = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
3830
- function to(e) {
3871
+ var co = /url\((['"]?)([^'"]+?)\1\)/g, lo = /url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g, uo = /src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;
3872
+ function fo(e) {
3831
3873
  let t = e.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
3832
3874
  return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`, "g");
3833
3875
  }
3834
- function no(e) {
3876
+ function po(e) {
3835
3877
  let t = [];
3836
- return e.replace(Qa, (e, n, r) => (t.push(r), e)), t.filter((e) => !Na(e));
3878
+ return e.replace(co, (e, n, r) => (t.push(r), e)), t.filter((e) => !Ua(e));
3837
3879
  }
3838
- async function ro(e, t, n, r, i) {
3880
+ async function mo(e, t, n, r, i) {
3839
3881
  try {
3840
- let a = n ? ca(t, n) : t, o = ja(t), s;
3841
- return s = i ? Pa(await i(a), o) : await Ra(a, o, r), e.replace(to(t), `$1${s}$3`);
3882
+ let a = n ? va(t, n) : t, o = Va(t), s;
3883
+ return s = i ? Wa(await i(a), o) : await Ja(a, o, r), e.replace(fo(t), `$1${s}$3`);
3842
3884
  } catch {}
3843
3885
  return e;
3844
3886
  }
3845
- function io(e, { preferredFontFormat: t }) {
3846
- return t ? e.replace(eo, (e) => {
3887
+ function ho(e, { preferredFontFormat: t }) {
3888
+ return t ? e.replace(uo, (e) => {
3847
3889
  for (;;) {
3848
- let [n, , r] = $a.exec(e) || [];
3890
+ let [n, , r] = lo.exec(e) || [];
3849
3891
  if (!r) return "";
3850
3892
  if (r === t) return `src: ${n};`;
3851
3893
  }
3852
3894
  }) : e;
3853
3895
  }
3854
- function ao(e) {
3855
- return e.search(Qa) !== -1;
3896
+ function go(e) {
3897
+ return e.search(co) !== -1;
3856
3898
  }
3857
- async function oo(e, t, n) {
3858
- if (!ao(e)) return e;
3859
- let r = io(e, n);
3860
- return no(r).reduce((e, r) => e.then((e) => ro(e, r, t, n)), Promise.resolve(r));
3899
+ async function _o(e, t, n) {
3900
+ if (!go(e)) return e;
3901
+ let r = ho(e, n);
3902
+ return po(r).reduce((e, r) => e.then((e) => mo(e, r, t, n)), Promise.resolve(r));
3861
3903
  }
3862
3904
  //#endregion
3863
3905
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-images.js
3864
- async function so(e, t, n) {
3906
+ async function vo(e, t, n) {
3865
3907
  let r = t.style?.getPropertyValue(e);
3866
3908
  if (r) {
3867
- let i = await oo(r, null, n);
3909
+ let i = await _o(r, null, n);
3868
3910
  return t.style.setProperty(e, i, t.style.getPropertyPriority(e)), !0;
3869
3911
  }
3870
3912
  return !1;
3871
3913
  }
3872
- async function co(e, t) {
3873
- await so("background", e, t) || await so("background-image", e, t), await so("mask", e, t) || await so("-webkit-mask", e, t) || await so("mask-image", e, t) || await so("-webkit-mask-image", e, t);
3914
+ async function yo(e, t) {
3915
+ await vo("background", e, t) || await vo("background-image", e, t), await vo("mask", e, t) || await vo("-webkit-mask", e, t) || await vo("mask-image", e, t) || await vo("-webkit-mask-image", e, t);
3874
3916
  }
3875
- async function lo(e, t) {
3917
+ async function bo(e, t) {
3876
3918
  let n = X(e, HTMLImageElement);
3877
- if (!(n && !Na(e.src)) && !(X(e, SVGImageElement) && !Na(e.href.baseVal))) return;
3878
- let r = n ? e.src : e.href.baseVal, i = await Ra(r, ja(r), t);
3919
+ if (!(n && !Ua(e.src)) && !(X(e, SVGImageElement) && !Ua(e.href.baseVal))) return;
3920
+ let r = n ? e.src : e.href.baseVal, i = await Ja(r, Va(r), t);
3879
3921
  await new Promise((r, a) => {
3880
3922
  e.onload = r, e.onerror = t.onImageErrorHandler ? (...e) => {
3881
3923
  try {
@@ -3888,16 +3930,16 @@ async function lo(e, t) {
3888
3930
  o.decode &&= r, o.loading === "lazy" && (o.loading = "eager"), n ? (e.srcset = "", e.src = i) : e.href.baseVal = i;
3889
3931
  });
3890
3932
  }
3891
- async function uo(e, t) {
3892
- let n = ua(e.childNodes).map((e) => fo(e, t));
3933
+ async function xo(e, t) {
3934
+ let n = ba(e.childNodes).map((e) => So(e, t));
3893
3935
  await Promise.all(n).then(() => e);
3894
3936
  }
3895
- async function fo(e, t) {
3896
- X(e, Element) && (await co(e, t), await lo(e, t), await uo(e, t));
3937
+ async function So(e, t) {
3938
+ X(e, Element) && (await yo(e, t), await bo(e, t), await xo(e, t));
3897
3939
  }
3898
3940
  //#endregion
3899
3941
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/apply-style.js
3900
- function po(e, t) {
3942
+ function Co(e, t) {
3901
3943
  let { style: n } = e;
3902
3944
  t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.width && (n.width = `${t.width}px`), t.height && (n.height = `${t.height}px`);
3903
3945
  let r = t.style;
@@ -3907,22 +3949,22 @@ function po(e, t) {
3907
3949
  }
3908
3950
  //#endregion
3909
3951
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/embed-webfonts.js
3910
- var mo = {};
3911
- async function ho(e) {
3912
- let t = mo[e];
3952
+ var wo = {};
3953
+ async function To(e) {
3954
+ let t = wo[e];
3913
3955
  return t ?? (t = {
3914
3956
  url: e,
3915
3957
  cssText: await (await fetch(e)).text()
3916
- }, mo[e] = t, t);
3958
+ }, wo[e] = t, t);
3917
3959
  }
3918
- async function go(e, t) {
3960
+ async function Eo(e, t) {
3919
3961
  let n = e.cssText, r = /url\(["']?([^"')]+)["']?\)/g, i = (n.match(/url\([^)]+\)/g) || []).map(async (i) => {
3920
3962
  let a = i.replace(r, "$1");
3921
- return a.startsWith("https://") || (a = new URL(a, e.url).href), Fa(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
3963
+ return a.startsWith("https://") || (a = new URL(a, e.url).href), Ga(a, t.fetchRequestInit, ({ result: e }) => (n = n.replace(i, `url(${e})`), [i, e]));
3922
3964
  });
3923
3965
  return Promise.all(i).then(() => n);
3924
3966
  }
3925
- function _o(e) {
3967
+ function Do(e) {
3926
3968
  if (e == null) return [];
3927
3969
  let t = [], n = e.replace(/(\/\*[\s\S]*?\*\/)/gi, ""), r = /* @__PURE__ */ RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})", "gi");
3928
3970
  for (;;) {
@@ -3942,13 +3984,13 @@ function _o(e) {
3942
3984
  }
3943
3985
  return t;
3944
3986
  }
3945
- async function vo(e, t) {
3987
+ async function Oo(e, t) {
3946
3988
  let n = [], r = [];
3947
3989
  return e.forEach((n) => {
3948
3990
  if ("cssRules" in n) try {
3949
- ua(n.cssRules || []).forEach((e, i) => {
3991
+ ba(n.cssRules || []).forEach((e, i) => {
3950
3992
  if (e.type === CSSRule.IMPORT_RULE) {
3951
- let a = i + 1, o = e.href, s = ho(o).then((e) => go(e, t)).then((e) => _o(e).forEach((e) => {
3993
+ let a = i + 1, o = e.href, s = To(o).then((e) => Eo(e, t)).then((e) => Do(e).forEach((e) => {
3952
3994
  try {
3953
3995
  n.insertRule(e, e.startsWith("@import") ? a += 1 : n.cssRules.length);
3954
3996
  } catch (t) {
@@ -3965,7 +4007,7 @@ async function vo(e, t) {
3965
4007
  });
3966
4008
  } catch (i) {
3967
4009
  let a = e.find((e) => e.href == null) || document.styleSheets[0];
3968
- n.href != null && r.push(ho(n.href).then((e) => go(e, t)).then((e) => _o(e).forEach((e) => {
4010
+ n.href != null && r.push(To(n.href).then((e) => Eo(e, t)).then((e) => Do(e).forEach((e) => {
3969
4011
  a.insertRule(e, a.cssRules.length);
3970
4012
  })).catch((e) => {
3971
4013
  console.error("Error loading remote stylesheet", e);
@@ -3973,7 +4015,7 @@ async function vo(e, t) {
3973
4015
  }
3974
4016
  }), Promise.all(r).then(() => (e.forEach((e) => {
3975
4017
  if ("cssRules" in e) try {
3976
- ua(e.cssRules || []).forEach((e) => {
4018
+ ba(e.cssRules || []).forEach((e) => {
3977
4019
  n.push(e);
3978
4020
  });
3979
4021
  } catch (t) {
@@ -3981,36 +4023,36 @@ async function vo(e, t) {
3981
4023
  }
3982
4024
  }), n));
3983
4025
  }
3984
- function yo(e) {
3985
- return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => ao(e.style.getPropertyValue("src")));
4026
+ function ko(e) {
4027
+ return e.filter((e) => e.type === CSSRule.FONT_FACE_RULE).filter((e) => go(e.style.getPropertyValue("src")));
3986
4028
  }
3987
- async function bo(e, t) {
4029
+ async function Ao(e, t) {
3988
4030
  if (e.ownerDocument == null) throw Error("Provided element is not within a Document");
3989
- return yo(await vo(ua(e.ownerDocument.styleSheets), t));
4031
+ return ko(await Oo(ba(e.ownerDocument.styleSheets), t));
3990
4032
  }
3991
- function xo(e) {
4033
+ function jo(e) {
3992
4034
  return e.trim().replace(/["']/g, "");
3993
4035
  }
3994
- function So(e) {
4036
+ function Mo(e) {
3995
4037
  let t = /* @__PURE__ */ new Set();
3996
4038
  function n(e) {
3997
4039
  (e.style.fontFamily || getComputedStyle(e).fontFamily).split(",").forEach((e) => {
3998
- t.add(xo(e));
4040
+ t.add(jo(e));
3999
4041
  }), Array.from(e.children).forEach((e) => {
4000
4042
  e instanceof HTMLElement && n(e);
4001
4043
  });
4002
4044
  }
4003
4045
  return n(e), t;
4004
4046
  }
4005
- async function Co(e, t) {
4006
- let n = await bo(e, t), r = So(e);
4007
- return (await Promise.all(n.filter((e) => r.has(xo(e.style.fontFamily))).map((e) => {
4047
+ async function No(e, t) {
4048
+ let n = await Ao(e, t), r = Mo(e);
4049
+ return (await Promise.all(n.filter((e) => r.has(jo(e.style.fontFamily))).map((e) => {
4008
4050
  let n = e.parentStyleSheet ? e.parentStyleSheet.href : null;
4009
- return oo(e.cssText, n, t);
4051
+ return _o(e.cssText, n, t);
4010
4052
  }))).join("\n");
4011
4053
  }
4012
- async function wo(e, t) {
4013
- let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await Co(e, t) : t.fontEmbedCSS;
4054
+ async function Po(e, t) {
4055
+ let n = t.fontEmbedCSS == null ? t.skipFonts ? null : await No(e, t) : t.fontEmbedCSS;
4014
4056
  if (n) {
4015
4057
  let t = document.createElement("style"), r = document.createTextNode(n);
4016
4058
  t.appendChild(r), e.firstChild ? e.insertBefore(t, e.firstChild) : e.appendChild(t);
@@ -4018,17 +4060,104 @@ async function wo(e, t) {
4018
4060
  }
4019
4061
  //#endregion
4020
4062
  //#region ../../node_modules/.pnpm/html-to-image@1.11.13/node_modules/html-to-image/es/index.js
4021
- async function To(e, t = {}) {
4022
- let { width: n, height: r } = ga(e, t), i = await Za(e, t, !0);
4023
- return await wo(i, t), await fo(i, t), po(i, t), await xa(i, n, r);
4063
+ async function Fo(e, t = {}) {
4064
+ let { width: n, height: r } = Ea(e, t), i = await so(e, t, !0);
4065
+ return await Po(i, t), await So(i, t), Co(i, t), await ja(i, n, r);
4066
+ }
4067
+ async function Io(e, t = {}) {
4068
+ let { width: n, height: r } = Ea(e, t), i = await ka(await Fo(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || Da(), c = t.canvasWidth || n, l = t.canvasHeight || r;
4069
+ return a.width = c * s, a.height = l * s, t.skipAutoScale || Oa(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;
4070
+ }
4071
+ //#endregion
4072
+ //#region src/runtime/sprite-inline.ts
4073
+ var Lo = "http://www.w3.org/2000/svg", Ro = "http://www.w3.org/1999/xlink", zo = 3e3;
4074
+ function Bo(e, t) {
4075
+ if (!e) return null;
4076
+ let n = e.trim();
4077
+ if (n === "" || n.startsWith("#")) return null;
4078
+ let r;
4079
+ try {
4080
+ r = new URL(n, t);
4081
+ } catch {
4082
+ return null;
4083
+ }
4084
+ if (r.protocol !== "http:" && r.protocol !== "https:") return null;
4085
+ let i = decodeURIComponent(r.hash.slice(1));
4086
+ return i ? (r.hash = "", {
4087
+ url: r.href,
4088
+ id: i
4089
+ }) : null;
4024
4090
  }
4025
- async function Eo(e, t = {}) {
4026
- let { width: n, height: r } = ga(e, t), i = await ya(await To(e, t)), a = document.createElement("canvas"), o = a.getContext("2d"), s = t.pixelRatio || _a(), c = t.canvasWidth || n, l = t.canvasHeight || r;
4027
- return a.width = c * s, a.height = l * s, t.skipAutoScale || va(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;
4091
+ var Vo = /* @__PURE__ */ new Map();
4092
+ function Ho(e) {
4093
+ let t = Vo.get(e);
4094
+ if (t) return t;
4095
+ let n = fetch(e, { signal: Ai(zo) }).then(async (e) => {
4096
+ if (!e.ok) throw Error(`sprite fetch returned ${e.status}`);
4097
+ let t = new DOMParser().parseFromString(await e.text(), "image/svg+xml");
4098
+ if (t.querySelector("parsererror")) throw Error("sprite is not parseable SVG");
4099
+ return t;
4100
+ }).catch((t) => (F(/* @__PURE__ */ Error(`Screenshot sprite ${e} unreadable: ${String(t)}`), { context: "screenshot-sprite" }), null));
4101
+ return Vo.set(e, n), n;
4102
+ }
4103
+ function Uo(e, t) {
4104
+ try {
4105
+ let n = e.querySelector(`#${CSS.escape(t)}`);
4106
+ if (n) return n;
4107
+ } catch {}
4108
+ return e.getElementById(t);
4109
+ }
4110
+ function Wo(e, t) {
4111
+ let n;
4112
+ if (e.tagName.toLowerCase() === "symbol") {
4113
+ n = document.createElementNS(Lo, "svg");
4114
+ for (let t of e.attributes) t.name !== "id" && n.setAttribute(t.name, t.value);
4115
+ for (let t of e.childNodes) n.appendChild(document.importNode(t, !0));
4116
+ } else n = document.importNode(e, !0), n.removeAttribute("id");
4117
+ n.tagName.toLowerCase() === "svg" && (n.setAttribute("width", "100%"), n.setAttribute("height", "100%"));
4118
+ for (let e of t.attributes) if (e.name !== "href" && e.localName !== "href") {
4119
+ if (e.name === "class" || e.name === "style") {
4120
+ let t = n.getAttribute(e.name), r = e.name === "style" ? ";" : " ";
4121
+ n.setAttribute(e.name, t ? `${t}${r}${e.value}` : e.value);
4122
+ continue;
4123
+ }
4124
+ n.setAttribute(e.name, e.value);
4125
+ }
4126
+ return n;
4127
+ }
4128
+ async function Go() {
4129
+ let e = [];
4130
+ for (let t of document.querySelectorAll("use")) {
4131
+ let n = Bo(t.getAttribute("href") ?? t.getAttributeNS(Ro, "href"), document.baseURI);
4132
+ n && e.push({
4133
+ use: t,
4134
+ ref: n
4135
+ });
4136
+ }
4137
+ if (e.length === 0) return () => {};
4138
+ let t = /* @__PURE__ */ new Map();
4139
+ await Promise.all([...new Set(e.map((e) => e.ref.url))].map(async (e) => {
4140
+ t.set(e, await Ho(e));
4141
+ }));
4142
+ let n = [];
4143
+ for (let { use: r, ref: i } of e) {
4144
+ let e = t.get(i.url);
4145
+ if (!e) continue;
4146
+ let a = Uo(e, i.id);
4147
+ if (!a) continue;
4148
+ let o = Wo(a, r);
4149
+ r.replaceWith(o), n.push({
4150
+ use: r,
4151
+ replacement: o
4152
+ });
4153
+ }
4154
+ return () => {
4155
+ for (let { use: e, replacement: t } of n) t.replaceWith(e);
4156
+ };
4028
4157
  }
4029
4158
  //#endregion
4030
4159
  //#region src/runtime/screenshot.ts
4031
- var Do = 2097152, Oo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", ko = [
4160
+ var Ko = 2097152, qo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Jo = [
4032
4161
  {
4033
4162
  quality: .85,
4034
4163
  scale: 1
@@ -4045,8 +4174,8 @@ var Do = 2097152, Oo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAA
4045
4174
  quality: .6,
4046
4175
  scale: .5
4047
4176
  }
4048
- ], Ao = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", jo = "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\"]";
4049
- function Mo(e) {
4177
+ ], Yo = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", Xo = "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\"]";
4178
+ function Zo(e) {
4050
4179
  let t = e.parentElement;
4051
4180
  for (; t;) {
4052
4181
  if (t.hasAttribute("data-markup-safe")) return !0;
@@ -4054,37 +4183,37 @@ function Mo(e) {
4054
4183
  }
4055
4184
  return !1;
4056
4185
  }
4057
- function No(e) {
4186
+ function Qo(e) {
4058
4187
  let t = /* @__PURE__ */ new Set(), n = [];
4059
4188
  function r(e) {
4060
4189
  t.has(e) || (t.add(e), n.push(e));
4061
4190
  }
4062
4191
  for (let e of document.querySelectorAll("[data-markup-private],[data-markup-redact]")) r(e);
4063
- for (let e of document.querySelectorAll(jo)) Mo(e) || r(e);
4192
+ for (let e of document.querySelectorAll(Xo)) Zo(e) || r(e);
4064
4193
  if (e.redactSelector) try {
4065
- for (let t of document.querySelectorAll(e.redactSelector)) Mo(t) || r(t);
4194
+ for (let t of document.querySelectorAll(e.redactSelector)) Zo(t) || r(t);
4066
4195
  } catch (e) {
4067
4196
  F(e, { context: "screenshot-redact-selector" });
4068
4197
  }
4069
- if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Mo(e) || r(e);
4198
+ if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Zo(e) || r(e);
4070
4199
  return n;
4071
4200
  }
4072
- function Po(e) {
4201
+ function $o(e) {
4073
4202
  let t = e.getAttribute("style");
4074
- return e.setAttribute("style", t ? `${t};${Ao}` : Ao), () => {
4203
+ return e.setAttribute("style", t ? `${t};${Yo}` : Yo), () => {
4075
4204
  t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
4076
4205
  };
4077
4206
  }
4078
- function Fo(e) {
4207
+ function es(e) {
4079
4208
  if (e.id) return `#${CSS.escape(e.id)}`;
4080
4209
  let t = e.tagName.toLowerCase(), n = e.getAttribute("type"), r = e.getAttribute("name");
4081
4210
  return n && r ? `${t}[type="${n}"][name="${r}"]` : n ? `${t}[type="${n}"]` : r ? `${t}[name="${r}"]` : t;
4082
4211
  }
4083
- async function Io(e, t, n) {
4212
+ async function ts(e, t, n) {
4084
4213
  try {
4085
- let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ? No(n) : [], s = o.map(Fo), c = o.map(Po), l;
4214
+ let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = await Go(), s = n ? Qo(n) : [], c = s.map(es), l = s.map($o), u;
4086
4215
  try {
4087
- l = await Eo(document.documentElement, {
4216
+ u = await Io(document.documentElement, {
4088
4217
  width: r,
4089
4218
  height: i,
4090
4219
  cacheBust: !0,
@@ -4093,7 +4222,7 @@ async function Io(e, t, n) {
4093
4222
  filter(t) {
4094
4223
  return !(e && (t === e || e.contains(t)) || t instanceof Element && t.hasAttribute("data-markup-skip"));
4095
4224
  },
4096
- imagePlaceholder: Oo,
4225
+ imagePlaceholder: qo,
4097
4226
  onImageErrorHandler: () => {},
4098
4227
  style: {
4099
4228
  transform: `translateY(-${window.scrollY}px)`,
@@ -4101,45 +4230,46 @@ async function Io(e, t, n) {
4101
4230
  }
4102
4231
  });
4103
4232
  } finally {
4104
- for (let e of c) e();
4233
+ for (let e of l) e();
4234
+ o();
4105
4235
  }
4106
4236
  if (t) {
4107
- let e = l.getContext("2d");
4108
- e && Bo(e, t.x, t.y, a);
4237
+ let e = u.getContext("2d");
4238
+ e && as(e, t.x, t.y, a);
4109
4239
  }
4110
- let u = await zo(l);
4111
- return u ? {
4112
- blob: u,
4113
- redactedCount: s.length,
4114
- redactedSelectors: s
4240
+ let d = await is(u);
4241
+ return d ? {
4242
+ blob: d,
4243
+ redactedCount: c.length,
4244
+ redactedSelectors: c
4115
4245
  } : null;
4116
4246
  } catch (e) {
4117
4247
  return F(e, { context: "screenshot-capture" }), null;
4118
4248
  }
4119
4249
  }
4120
- function Lo(e, t) {
4250
+ function ns(e, t) {
4121
4251
  return new Promise((n) => e.toBlob(n, "image/jpeg", t));
4122
4252
  }
4123
- function Ro(e, t) {
4253
+ function rs(e, t) {
4124
4254
  let n = document.createElement("canvas");
4125
4255
  n.width = Math.max(1, Math.round(e.width * t)), n.height = Math.max(1, Math.round(e.height * t));
4126
4256
  let r = n.getContext("2d");
4127
4257
  return r ? (r.imageSmoothingQuality = "high", r.drawImage(e, 0, 0, n.width, n.height), n) : null;
4128
4258
  }
4129
- async function zo(e) {
4259
+ async function is(e) {
4130
4260
  let t = null;
4131
- for (let { quality: n, scale: r } of ko) {
4132
- let i = r === 1 ? e : Ro(e, r);
4261
+ for (let { quality: n, scale: r } of Jo) {
4262
+ let i = r === 1 ? e : rs(e, r);
4133
4263
  if (!i) continue;
4134
- let a = await Lo(i, n);
4264
+ let a = await ns(i, n);
4135
4265
  if (a) {
4136
- if (a.size <= Do) return a;
4266
+ if (a.size <= Ko) return a;
4137
4267
  t = t == null ? a.size : Math.min(t, a.size);
4138
4268
  }
4139
4269
  }
4140
- return F(/* @__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 ${Do})`), { context: "screenshot-encode" }), null;
4270
+ return F(/* @__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 ${Ko})`), { context: "screenshot-encode" }), null;
4141
4271
  }
4142
- function Bo(e, t, n, r) {
4272
+ function as(e, t, n, r) {
4143
4273
  let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
4144
4274
  e.save();
4145
4275
  let l = 2 * i;
@@ -4157,7 +4287,7 @@ function Bo(e, t, n, r) {
4157
4287
  }
4158
4288
  //#endregion
4159
4289
  //#region src/runtime/use-subscription-token.ts
4160
- var Vo = Ur({
4290
+ var os = Ur({
4161
4291
  idle: { issued: (e, t) => ({
4162
4292
  kind: "active",
4163
4293
  token: t.token,
@@ -4168,9 +4298,9 @@ var Vo = Ur({
4168
4298
  token: t.token,
4169
4299
  expiresAt: t.expiresAt
4170
4300
  }) }
4171
- }), Ho = 18e5, Uo = 6e4, Wo = 6e4;
4172
- function Go(e) {
4173
- let [t, n] = Wr(Vo, { kind: "idle" });
4301
+ }), ss = 18e5, cs = 6e4, ls = 6e4;
4302
+ function us(e) {
4303
+ let [t, n] = Wr(os, { kind: "idle" });
4174
4304
  return B(() => {
4175
4305
  let t = !1, r = null;
4176
4306
  async function i() {
@@ -4182,11 +4312,11 @@ function Go(e) {
4182
4312
  token: a.token,
4183
4313
  expiresAt: a.expiresAt
4184
4314
  });
4185
- let o = Math.max(Uo, a.expiresAt - Date.now() - Ho);
4315
+ let o = Math.max(cs, a.expiresAt - Date.now() - ss);
4186
4316
  r = setTimeout(i, o);
4187
4317
  } catch (e) {
4188
4318
  if (t) return;
4189
- e?.name !== "TypeError" && F(e, { context: "subscription-token-refresh" }), r = setTimeout(i, Wo);
4319
+ e?.name !== "TypeError" && F(e, { context: "subscription-token-refresh" }), r = setTimeout(i, ls);
4190
4320
  }
4191
4321
  }
4192
4322
  return i(), () => {
@@ -4196,7 +4326,7 @@ function Go(e) {
4196
4326
  }
4197
4327
  //#endregion
4198
4328
  //#region src/runtime/refresh-token.ts
4199
- async function Ko(e) {
4329
+ async function ds(e) {
4200
4330
  try {
4201
4331
  let t = {
4202
4332
  method: "POST",
@@ -4232,8 +4362,8 @@ async function Ko(e) {
4232
4362
  }
4233
4363
  //#endregion
4234
4364
  //#region src/runtime/use-token-refresh.ts
4235
- var qo = 6e4, Jo = 500;
4236
- function Yo(e, t, n, r, i) {
4365
+ var fs = 6e4, ps = 500;
4366
+ function ms(e, t, n, r, i) {
4237
4367
  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;
4238
4368
  B(() => {
4239
4369
  if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
@@ -4242,8 +4372,8 @@ function Yo(e, t, n, r, i) {
4242
4372
  i();
4243
4373
  return;
4244
4374
  }
4245
- let d = Math.max(Jo, l - qo - u), f = new AbortController(), p = window.setTimeout(async () => {
4246
- let a = await Ko({
4375
+ let d = Math.max(ps, l - fs - u), f = new AbortController(), p = window.setTimeout(async () => {
4376
+ let a = await ds({
4247
4377
  apiUrl: t,
4248
4378
  apiKey: n,
4249
4379
  mode: o,
@@ -4286,7 +4416,7 @@ function Yo(e, t, n, r, i) {
4286
4416
  function Z(...e) {
4287
4417
  return e.filter(Boolean).join(" ");
4288
4418
  }
4289
- function Xo() {
4419
+ function hs() {
4290
4420
  return typeof navigator < "u" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? {
4291
4421
  mod: "⌘",
4292
4422
  enter: "↵"
@@ -4297,7 +4427,7 @@ function Xo() {
4297
4427
  }
4298
4428
  //#endregion
4299
4429
  //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
4300
- var Zo = 0;
4430
+ var gs = 0;
4301
4431
  Array.isArray;
4302
4432
  function Q(e, n, r, i, a, o) {
4303
4433
  n ||= {};
@@ -4314,7 +4444,7 @@ function Q(e, n, r, i, a, o) {
4314
4444
  __e: null,
4315
4445
  __c: null,
4316
4446
  constructor: void 0,
4317
- __v: --Zo,
4447
+ __v: --gs,
4318
4448
  __i: -1,
4319
4449
  __u: 0,
4320
4450
  __source: a,
@@ -4325,7 +4455,7 @@ function Q(e, n, r, i, a, o) {
4325
4455
  }
4326
4456
  //#endregion
4327
4457
  //#region src/runtime/ui/icons.tsx
4328
- function Qo({ size: e = 16 }) {
4458
+ function _s({ size: e = 16 }) {
4329
4459
  return /* @__PURE__ */ Q("svg", {
4330
4460
  width: e,
4331
4461
  height: e,
@@ -4335,7 +4465,7 @@ function Qo({ size: e = 16 }) {
4335
4465
  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" })
4336
4466
  });
4337
4467
  }
4338
- function $o({ size: e = 16 }) {
4468
+ function vs({ size: e = 16 }) {
4339
4469
  return /* @__PURE__ */ Q("svg", {
4340
4470
  width: e,
4341
4471
  height: e,
@@ -4344,7 +4474,7 @@ function $o({ size: e = 16 }) {
4344
4474
  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" })
4345
4475
  });
4346
4476
  }
4347
- function es({ size: e = 16 }) {
4477
+ function ys({ size: e = 16 }) {
4348
4478
  return /* @__PURE__ */ Q("svg", {
4349
4479
  width: e,
4350
4480
  height: e,
@@ -4354,7 +4484,7 @@ function es({ size: e = 16 }) {
4354
4484
  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" })
4355
4485
  });
4356
4486
  }
4357
- function ts({ size: e = 16 }) {
4487
+ function bs({ size: e = 16 }) {
4358
4488
  return /* @__PURE__ */ Q("svg", {
4359
4489
  width: e,
4360
4490
  height: e,
@@ -4363,7 +4493,7 @@ function ts({ size: e = 16 }) {
4363
4493
  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" })
4364
4494
  });
4365
4495
  }
4366
- function ns({ size: e = 16 }) {
4496
+ function xs({ size: e = 16 }) {
4367
4497
  return /* @__PURE__ */ Q("svg", {
4368
4498
  xmlns: "http://www.w3.org/2000/svg",
4369
4499
  width: e,
@@ -4373,7 +4503,7 @@ function ns({ size: e = 16 }) {
4373
4503
  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" })
4374
4504
  });
4375
4505
  }
4376
- function rs({ size: e = 16 }) {
4506
+ function Ss({ size: e = 16 }) {
4377
4507
  return /* @__PURE__ */ Q("svg", {
4378
4508
  width: e,
4379
4509
  height: e,
@@ -4387,7 +4517,7 @@ function rs({ size: e = 16 }) {
4387
4517
  })
4388
4518
  });
4389
4519
  }
4390
- function is({ size: e = 16 }) {
4520
+ function Cs({ size: e = 16 }) {
4391
4521
  return /* @__PURE__ */ Q("svg", {
4392
4522
  width: e,
4393
4523
  height: e,
@@ -4396,7 +4526,7 @@ function is({ size: e = 16 }) {
4396
4526
  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" })
4397
4527
  });
4398
4528
  }
4399
- function as({ size: e = 16 }) {
4529
+ function ws({ size: e = 16 }) {
4400
4530
  return /* @__PURE__ */ Q("svg", {
4401
4531
  width: e,
4402
4532
  height: e,
@@ -4420,19 +4550,19 @@ function $({ size: e = 16, children: t }) {
4420
4550
  children: t
4421
4551
  });
4422
4552
  }
4423
- function os({ size: e = 16 }) {
4553
+ function Ts({ size: e = 16 }) {
4424
4554
  return /* @__PURE__ */ Q($, {
4425
4555
  size: e,
4426
4556
  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" })
4427
4557
  });
4428
4558
  }
4429
- function ss({ size: e = 16 }) {
4559
+ function Es({ size: e = 16 }) {
4430
4560
  return /* @__PURE__ */ Q($, {
4431
4561
  size: e,
4432
4562
  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" })]
4433
4563
  });
4434
4564
  }
4435
- function cs({ size: e = 16 }) {
4565
+ function Ds({ size: e = 16 }) {
4436
4566
  return /* @__PURE__ */ Q($, {
4437
4567
  size: e,
4438
4568
  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", {
@@ -4442,7 +4572,7 @@ function cs({ size: e = 16 }) {
4442
4572
  })]
4443
4573
  });
4444
4574
  }
4445
- function ls({ size: e = 16 }) {
4575
+ function Os({ size: e = 16 }) {
4446
4576
  return /* @__PURE__ */ Q($, {
4447
4577
  size: e,
4448
4578
  children: [
@@ -4453,13 +4583,13 @@ function ls({ size: e = 16 }) {
4453
4583
  ]
4454
4584
  });
4455
4585
  }
4456
- function us({ size: e = 16 }) {
4586
+ function ks({ size: e = 16 }) {
4457
4587
  return /* @__PURE__ */ Q($, {
4458
4588
  size: e,
4459
4589
  children: /* @__PURE__ */ Q("path", { d: "M3 6h18M3 12h18M3 18h18" })
4460
4590
  });
4461
4591
  }
4462
- function ds({ size: e = 16 }) {
4592
+ function As({ size: e = 16 }) {
4463
4593
  return /* @__PURE__ */ Q($, {
4464
4594
  size: e,
4465
4595
  children: [/* @__PURE__ */ Q("circle", {
@@ -4469,13 +4599,13 @@ function ds({ size: e = 16 }) {
4469
4599
  }), /* @__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" })]
4470
4600
  });
4471
4601
  }
4472
- function fs({ size: e = 16 }) {
4602
+ function js({ size: e = 16 }) {
4473
4603
  return /* @__PURE__ */ Q($, {
4474
4604
  size: e,
4475
4605
  children: /* @__PURE__ */ Q("path", { d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79z" })
4476
4606
  });
4477
4607
  }
4478
- function ps({ size: e = 16 }) {
4608
+ function Ms({ size: e = 16 }) {
4479
4609
  return /* @__PURE__ */ Q($, {
4480
4610
  size: e,
4481
4611
  children: [/* @__PURE__ */ Q("rect", {
@@ -4487,13 +4617,13 @@ function ps({ size: e = 16 }) {
4487
4617
  }), /* @__PURE__ */ Q("path", { d: "M8 21h8M12 17v4" })]
4488
4618
  });
4489
4619
  }
4490
- function ms({ size: e = 16 }) {
4620
+ function Ns({ size: e = 16 }) {
4491
4621
  return /* @__PURE__ */ Q($, {
4492
4622
  size: e,
4493
4623
  children: /* @__PURE__ */ Q("path", { d: "M12 22s8-3.5 8-10V5l-8-3-8 3v7c0 6.5 8 10 8 10z" })
4494
4624
  });
4495
4625
  }
4496
- function hs({ size: e = 16 }) {
4626
+ function Ps({ size: e = 16 }) {
4497
4627
  return /* @__PURE__ */ Q($, {
4498
4628
  size: e,
4499
4629
  children: [/* @__PURE__ */ Q("rect", {
@@ -4505,19 +4635,19 @@ function hs({ size: e = 16 }) {
4505
4635
  }), /* @__PURE__ */ Q("path", { d: "M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M10 14h4" })]
4506
4636
  });
4507
4637
  }
4508
- function gs({ size: e = 16 }) {
4638
+ function Fs({ size: e = 16 }) {
4509
4639
  return /* @__PURE__ */ Q($, {
4510
4640
  size: e,
4511
4641
  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" })]
4512
4642
  });
4513
4643
  }
4514
- function _s({ size: e = 16 }) {
4644
+ function Is({ size: e = 16 }) {
4515
4645
  return /* @__PURE__ */ Q($, {
4516
4646
  size: e,
4517
4647
  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" })]
4518
4648
  });
4519
4649
  }
4520
- function vs({ size: e = 16 }) {
4650
+ function Ls({ size: e = 16 }) {
4521
4651
  return /* @__PURE__ */ Q($, {
4522
4652
  size: e,
4523
4653
  children: [/* @__PURE__ */ Q("circle", {
@@ -4527,7 +4657,7 @@ function vs({ size: e = 16 }) {
4527
4657
  }), /* @__PURE__ */ Q("path", { d: "M4 21a8 8 0 0 1 16 0" })]
4528
4658
  });
4529
4659
  }
4530
- function ys({ size: e = 16 }) {
4660
+ function Rs({ size: e = 16 }) {
4531
4661
  return /* @__PURE__ */ Q($, {
4532
4662
  size: e,
4533
4663
  children: [
@@ -4546,7 +4676,7 @@ function ys({ size: e = 16 }) {
4546
4676
  ]
4547
4677
  });
4548
4678
  }
4549
- function bs({ size: e = 16 }) {
4679
+ function zs({ size: e = 16 }) {
4550
4680
  return /* @__PURE__ */ Q($, {
4551
4681
  size: e,
4552
4682
  children: [
@@ -4558,7 +4688,7 @@ function bs({ size: e = 16 }) {
4558
4688
  }
4559
4689
  //#endregion
4560
4690
  //#region src/runtime/ui/identity-menu.tsx
4561
- function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
4691
+ function Bs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboardUrl: i, commentAccess: a = "anyone", onSignIn: o, onSignOut: s, onForgetMe: c }) {
4562
4692
  let [l, u] = z(!1), [d, f] = z(!1), [p, m] = z(!1), h = V(null);
4563
4693
  B(() => {
4564
4694
  if (!l) return;
@@ -4575,7 +4705,7 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4575
4705
  }, [l]), B(() => {
4576
4706
  l || (f(!1), m(!1));
4577
4707
  }, [l]);
4578
- let g = ta(e), _ = Ss(g), v = e.kind === "verified", y = e.kind === "verified" ? e.identity.image : void 0, [b, x] = z(null), C = v && y != null && b !== y, w = v ? e.identity.email : null, T = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
4708
+ let g = ta(e), _ = Vs(g), v = e.kind === "verified", y = e.kind === "verified" ? e.identity.image : void 0, [b, x] = z(null), C = v && y != null && b !== y, w = v ? e.identity.email : null, T = t === "bottom-left" ? "is-anchor-left" : t === "bottom-center" ? "is-anchor-center" : "is-anchor-right";
4579
4709
  return /* @__PURE__ */ Q("div", {
4580
4710
  ref: h,
4581
4711
  style: {
@@ -4608,7 +4738,7 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4608
4738
  }) : v && _ ? /* @__PURE__ */ Q("span", {
4609
4739
  class: "markup-avatar-initials",
4610
4740
  children: _
4611
- }) : /* @__PURE__ */ Q(vs, { size: 14 })
4741
+ }) : /* @__PURE__ */ Q(Ls, { size: 14 })
4612
4742
  }), v && g ? /* @__PURE__ */ Q("span", {
4613
4743
  class: "markup-sr-only",
4614
4744
  children: g
@@ -4637,7 +4767,7 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4637
4767
  onClick: () => u(!1),
4638
4768
  children: [/* @__PURE__ */ Q("span", {
4639
4769
  class: "ic",
4640
- children: /* @__PURE__ */ Q(bs, { size: 16 })
4770
+ children: /* @__PURE__ */ Q(zs, { size: 16 })
4641
4771
  }), /* @__PURE__ */ Q("span", {
4642
4772
  class: "lbl",
4643
4773
  children: "Account"
@@ -4653,7 +4783,7 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4653
4783
  },
4654
4784
  children: [/* @__PURE__ */ Q("span", {
4655
4785
  class: "ic",
4656
- children: /* @__PURE__ */ Q(_s, { size: 16 })
4786
+ children: /* @__PURE__ */ Q(Is, { size: 16 })
4657
4787
  }), /* @__PURE__ */ Q("span", {
4658
4788
  class: "lbl",
4659
4789
  children: r ? "Signing out…" : p ? "Confirm: sign out of this site" : "Sign out"
@@ -4676,7 +4806,7 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4676
4806
  onClick: () => {
4677
4807
  u(!1), o();
4678
4808
  },
4679
- children: [/* @__PURE__ */ Q(gs, { size: 14 }), /* @__PURE__ */ Q("span", { children: n ? "Signing in…" : "Sign in" })]
4809
+ children: [/* @__PURE__ */ Q(Fs, { size: 14 }), /* @__PURE__ */ Q("span", { children: n ? "Signing in…" : "Sign in" })]
4680
4810
  }),
4681
4811
  /* @__PURE__ */ Q("button", {
4682
4812
  type: "button",
@@ -4695,12 +4825,12 @@ function xs({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4695
4825
  }) : null]
4696
4826
  });
4697
4827
  }
4698
- function Ss(e) {
4828
+ function Vs(e) {
4699
4829
  return e && e.trim().split(/\s+/).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("") || null;
4700
4830
  }
4701
4831
  //#endregion
4702
4832
  //#region src/runtime/use-drag.ts
4703
- function Cs(e) {
4833
+ function Hs(e) {
4704
4834
  let t = V(e);
4705
4835
  t.current = e;
4706
4836
  let [n, r] = z(!1);
@@ -4728,8 +4858,8 @@ function Cs(e) {
4728
4858
  h = !0, r(!0), t.current.onStart?.();
4729
4859
  }
4730
4860
  let a = Math.max(p, window.innerWidth - u - p), _ = Math.max(p, window.innerHeight - d - p), v = {
4731
- left: ws(c + n, p, a),
4732
- top: ws(l + i, p, _)
4861
+ left: Us(c + n, p, a),
4862
+ top: Us(l + i, p, _)
4733
4863
  };
4734
4864
  g = v, t.current.onMove(v);
4735
4865
  }
@@ -4744,12 +4874,12 @@ function Cs(e) {
4744
4874
  isDragging: n
4745
4875
  };
4746
4876
  }
4747
- function ws(e, t, n) {
4877
+ function Us(e, t, n) {
4748
4878
  return Math.max(t, Math.min(n, e));
4749
4879
  }
4750
4880
  //#endregion
4751
4881
  //#region src/runtime/use-focus-trap.ts
4752
- var Ts = [
4882
+ var Ws = [
4753
4883
  "a[href]",
4754
4884
  "button:not([disabled])",
4755
4885
  "input:not([disabled])",
@@ -4757,14 +4887,14 @@ var Ts = [
4757
4887
  "textarea:not([disabled])",
4758
4888
  "[tabindex]:not([tabindex=\"-1\"])"
4759
4889
  ].join(",");
4760
- function Es(e, t) {
4890
+ function Gs(e, t) {
4761
4891
  B(() => {
4762
4892
  if (!t) return;
4763
4893
  let n = e.current;
4764
4894
  if (!n) return;
4765
4895
  function r(e) {
4766
4896
  if (e.key !== "Tab") return;
4767
- let t = Array.from(n.querySelectorAll(Ts)), r = t[0], i = t[t.length - 1];
4897
+ let t = Array.from(n.querySelectorAll(Ws)), r = t[0], i = t[t.length - 1];
4768
4898
  if (!r || !i) return;
4769
4899
  let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
4770
4900
  (e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
@@ -4774,7 +4904,7 @@ function Es(e, t) {
4774
4904
  }
4775
4905
  //#endregion
4776
4906
  //#region src/runtime/use-object-url.ts
4777
- function Ds(e) {
4907
+ function Ks(e) {
4778
4908
  let [t, n] = z(null);
4779
4909
  return B(() => {
4780
4910
  if (!e) {
@@ -4787,7 +4917,7 @@ function Ds(e) {
4787
4917
  }
4788
4918
  //#endregion
4789
4919
  //#region src/runtime/ui/author-prompt.tsx
4790
- function Os({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
4920
+ function qs({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1, isSigningIn: r = !1, onSubmit: i, onCancel: a, onSignIn: o, onSignOut: s }) {
4791
4921
  let [c, l] = z(""), [u, d] = z(""), f = V(null);
4792
4922
  B(() => {
4793
4923
  f.current?.focus();
@@ -4921,27 +5051,27 @@ function Os({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1,
4921
5051
  }
4922
5052
  //#endregion
4923
5053
  //#region src/runtime/mention-input.ts
4924
- var ks = "data-markup-mention", As = "data-markup-mention-name", js = /* @__PURE__ */ new Set([
5054
+ var Js = "data-markup-mention", Ys = "data-markup-mention-name", Xs = /* @__PURE__ */ new Set([
4925
5055
  "DIV",
4926
5056
  "P",
4927
5057
  "LI",
4928
5058
  "BLOCKQUOTE",
4929
5059
  "PRE"
4930
- ]), Ms = 3, Ns = 1;
4931
- function Ps(e) {
5060
+ ]), Zs = 3, Qs = 1;
5061
+ function $s(e) {
4932
5062
  let t = "", n = (r) => {
4933
5063
  let i = r.childNodes;
4934
5064
  for (let a = 0; a < i.length; a++) {
4935
5065
  let o = i[a];
4936
5066
  if (!o) continue;
4937
- if (o.nodeType === Ms) {
5067
+ if (o.nodeType === Zs) {
4938
5068
  t += o.data;
4939
5069
  continue;
4940
5070
  }
4941
- if (o.nodeType !== Ns) continue;
4942
- let s = o, c = s.getAttribute(ks);
5071
+ if (o.nodeType !== Qs) continue;
5072
+ let s = o, c = s.getAttribute(Js);
4943
5073
  if (c) {
4944
- let e = Fs(s);
5074
+ let e = ec(s);
4945
5075
  t += Yr({
4946
5076
  userId: c,
4947
5077
  name: e
@@ -4952,77 +5082,77 @@ function Ps(e) {
4952
5082
  (r !== e || a !== i.length - 1) && (t += "\n");
4953
5083
  continue;
4954
5084
  }
4955
- js.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
5085
+ Xs.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
4956
5086
  }
4957
5087
  };
4958
5088
  return n(e), t;
4959
5089
  }
4960
- function Fs(e) {
4961
- return e.getAttribute(As) || (e.textContent ?? "").replace(/^@/, "");
5090
+ function ec(e) {
5091
+ return e.getAttribute(Ys) || (e.textContent ?? "").replace(/^@/, "");
4962
5092
  }
4963
- function Is(e, t, n) {
5093
+ function tc(e, t, n) {
4964
5094
  let r = e.createElement("span");
4965
- return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(ks, t.userId), r.setAttribute(As, t.name), r.textContent = `@${t.name}`, r;
5095
+ return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(Js, t.userId), r.setAttribute(Ys, t.name), r.textContent = `@${t.name}`, r;
4966
5096
  }
4967
- function Ls(e, t, n) {
5097
+ function nc(e, t, n) {
4968
5098
  let r = e.createDocumentFragment();
4969
5099
  for (let i of Kr(t)) {
4970
5100
  if (i.type === "text") {
4971
5101
  i.value && r.appendChild(e.createTextNode(i.value));
4972
5102
  continue;
4973
5103
  }
4974
- r.appendChild(Is(e, {
5104
+ r.appendChild(tc(e, {
4975
5105
  userId: i.userId,
4976
5106
  name: i.name
4977
5107
  }, n));
4978
5108
  }
4979
5109
  return r;
4980
5110
  }
4981
- function Rs(e) {
5111
+ function rc(e) {
4982
5112
  let t = e.getRootNode();
4983
5113
  return typeof t.getSelection == "function" ? t.getSelection() : e.ownerDocument.getSelection();
4984
5114
  }
4985
- function zs(e) {
4986
- let t = Rs(e);
5115
+ function ic(e) {
5116
+ let t = rc(e);
4987
5117
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return null;
4988
5118
  let n = t.focusNode;
4989
- return !n || n.nodeType !== Ms || !e.contains(n) || Bs(n, e) ? null : {
5119
+ return !n || n.nodeType !== Zs || !e.contains(n) || ac(n, e) ? null : {
4990
5120
  node: n,
4991
5121
  offset: t.focusOffset
4992
5122
  };
4993
5123
  }
4994
- function Bs(e, t) {
5124
+ function ac(e, t) {
4995
5125
  let n = e;
4996
5126
  for (; n && n !== t;) {
4997
- if (n.nodeType === Ns && n.hasAttribute("data-markup-mention")) return n;
5127
+ if (n.nodeType === Qs && n.hasAttribute("data-markup-mention")) return n;
4998
5128
  n = n.parentNode;
4999
5129
  }
5000
5130
  return null;
5001
5131
  }
5002
- function Vs(e) {
5003
- let t = Rs(e);
5132
+ function oc(e) {
5133
+ let t = rc(e);
5004
5134
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return;
5005
5135
  let n = t.focusNode;
5006
5136
  if (!n || !e.contains(n)) return;
5007
- let r = Bs(n, e);
5137
+ let r = ac(n, e);
5008
5138
  if (!r) return;
5009
5139
  let i = r.nextSibling;
5010
- (!i || i.nodeType !== Ms) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Hs(e, i, 0);
5140
+ (!i || i.nodeType !== Zs) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), sc(e, i, 0);
5011
5141
  }
5012
- function Hs(e, t, n) {
5013
- let r = Rs(e);
5142
+ function sc(e, t, n) {
5143
+ let r = rc(e);
5014
5144
  if (!r) return;
5015
5145
  let i = e.ownerDocument.createRange();
5016
5146
  i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
5017
5147
  }
5018
- function Us(e) {
5148
+ function cc(e) {
5019
5149
  let t = Jr(e.node.data, e.offset);
5020
5150
  return t ? {
5021
5151
  ...t,
5022
5152
  textNode: e.node
5023
5153
  } : null;
5024
5154
  }
5025
- function Ws(e, t, n, r) {
5155
+ function lc(e, t, n, r) {
5026
5156
  if (Yr(n) == null) return !1;
5027
5157
  let i = t.textNode;
5028
5158
  if (!e.contains(i)) return !1;
@@ -5030,31 +5160,31 @@ function Ws(e, t, n, r) {
5030
5160
  if (!a || t.caret > i.data.length) return !1;
5031
5161
  i.deleteData(t.at, t.caret - t.at);
5032
5162
  let o = i.splitText(t.at);
5033
- return a.insertBefore(Is(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Hs(e, o, 1), !0;
5163
+ return a.insertBefore(tc(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), sc(e, o, 1), !0;
5034
5164
  }
5035
- function Gs(e, t) {
5036
- let n = Rs(e);
5165
+ function uc(e, t) {
5166
+ let n = rc(e);
5037
5167
  if (!n || n.rangeCount === 0) return;
5038
5168
  let r = n.getRangeAt(0);
5039
5169
  if (!e.contains(r.commonAncestorContainer)) return;
5040
5170
  r.deleteContents();
5041
5171
  let { startContainer: i, startOffset: a } = r;
5042
- if (i.nodeType === Ms) {
5172
+ if (i.nodeType === Zs) {
5043
5173
  let n = i;
5044
- n.insertData(a, t), Hs(e, n, a + t.length);
5174
+ n.insertData(a, t), sc(e, n, a + t.length);
5045
5175
  return;
5046
5176
  }
5047
5177
  let o = e.ownerDocument.createTextNode(t);
5048
- r.insertNode(o), Hs(e, o, o.data.length);
5178
+ r.insertNode(o), sc(e, o, o.data.length);
5049
5179
  }
5050
- function Ks(e, t) {
5180
+ function dc(e, t) {
5051
5181
  let n = e.ownerDocument, r = null, i = null, a = !0;
5052
5182
  function o(t) {
5053
5183
  let n = t.length === 0;
5054
5184
  (n !== a || e.hasAttribute("data-empty") !== n) && (a = n, e.toggleAttribute("data-empty", n));
5055
5185
  }
5056
5186
  function s() {
5057
- let n = Ps(e);
5187
+ let n = $s(e);
5058
5188
  o(n), t.onChange(n);
5059
5189
  }
5060
5190
  function c(e) {
@@ -5070,7 +5200,7 @@ function Ks(e, t) {
5070
5200
  c(null);
5071
5201
  return;
5072
5202
  }
5073
- let n = zs(e), r = n ? Us(n) : null;
5203
+ let n = ic(e), r = n ? cc(n) : null;
5074
5204
  if (r && i && r.textNode === i.node && r.at === i.at) {
5075
5205
  c(null);
5076
5206
  return;
@@ -5078,29 +5208,29 @@ function Ks(e, t) {
5078
5208
  i = null, c(r);
5079
5209
  }
5080
5210
  function u(r) {
5081
- e.replaceChildren(Ls(n, r, t.chipClass)), o(Ps(e)), i = null, c(null);
5211
+ e.replaceChildren(nc(n, r, t.chipClass)), o($s(e)), i = null, c(null);
5082
5212
  }
5083
5213
  let d = () => {
5084
5214
  s(), l();
5085
5215
  }, f = () => l(), p = () => {
5086
- Vs(e), l();
5216
+ oc(e), l();
5087
5217
  }, m = (t) => {
5088
5218
  let n = t.clipboardData?.getData("text/plain");
5089
- t.preventDefault(), n && (Gs(e, n.replace(/\r\n?/g, "\n")), s(), l());
5219
+ t.preventDefault(), n && (uc(e, n.replace(/\r\n?/g, "\n")), s(), l());
5090
5220
  }, h = (e) => {
5091
5221
  e.preventDefault();
5092
5222
  };
5093
5223
  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 ?? ""), {
5094
- getValue: () => Ps(e),
5224
+ getValue: () => $s(e),
5095
5225
  setValue: u,
5096
5226
  focus() {
5097
5227
  e.focus();
5098
5228
  let t = e.lastChild;
5099
- t && (t.nodeType === Ms ? Hs(e, t, t.data.length) : Hs(e, e, e.childNodes.length));
5229
+ t && (t.nodeType === Zs ? sc(e, t, t.data.length) : sc(e, e, e.childNodes.length));
5100
5230
  },
5101
5231
  insertMention(n) {
5102
- let a = zs(e), o = (a ? Us(a) : null) ?? r;
5103
- o && Ws(e, o, n, t.chipClass) && (s(), i = null, c(null));
5232
+ let a = ic(e), o = (a ? cc(a) : null) ?? r;
5233
+ o && lc(e, o, n, t.chipClass) && (s(), i = null, c(null));
5104
5234
  },
5105
5235
  syncTrigger: l,
5106
5236
  clearTrigger: () => c(null),
@@ -5115,31 +5245,94 @@ function Ks(e, t) {
5115
5245
  }
5116
5246
  };
5117
5247
  }
5118
- var qs = null;
5119
- function Js() {
5120
- if (qs) return qs;
5248
+ var fc = null;
5249
+ function pc() {
5250
+ if (fc) return fc;
5121
5251
  if (typeof document > "u") return "true";
5122
5252
  let e = document.createElement("div");
5123
5253
  try {
5124
- e.contentEditable = "plaintext-only", qs = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5254
+ e.contentEditable = "plaintext-only", fc = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5125
5255
  } catch {
5126
- qs = "true";
5256
+ fc = "true";
5127
5257
  }
5128
- return qs;
5258
+ return fc;
5259
+ }
5260
+ //#endregion
5261
+ //#region src/lib/linkify.ts
5262
+ var mc = /(^|[\s([{<'"])((?:https?:\/\/|www\.)[^\s<>'"]+)/gi, hc = ".,;:!?", gc = {
5263
+ ")": "(",
5264
+ "]": "[",
5265
+ "}": "{"
5266
+ };
5267
+ function _c(e, t) {
5268
+ let n = 0;
5269
+ for (let r of e) r === t && (n += 1);
5270
+ return n;
5271
+ }
5272
+ function vc(e) {
5273
+ let t = e.length;
5274
+ for (; t > 0;) {
5275
+ let n = e[t - 1] ?? "";
5276
+ if (hc.includes(n)) {
5277
+ --t;
5278
+ continue;
5279
+ }
5280
+ let r = gc[n];
5281
+ if (r !== void 0) {
5282
+ let i = e.slice(0, t);
5283
+ if (_c(i, n) > _c(i, r)) {
5284
+ --t;
5285
+ continue;
5286
+ }
5287
+ }
5288
+ break;
5289
+ }
5290
+ return e.slice(0, t);
5291
+ }
5292
+ function yc(e) {
5293
+ let t = /^https?:\/\//i.test(e) ? e : `https://${e}`, n = t.replace(/^https?:\/\//i, "").split(/[/?#]/, 1)[0] ?? "";
5294
+ return !n.includes(".") || n.startsWith(".") || n.endsWith(".") ? null : t;
5295
+ }
5296
+ function bc(e) {
5297
+ if (!e) return [];
5298
+ let t = [], n = 0, r = new RegExp(mc.source, "gi");
5299
+ for (let i = r.exec(e); i !== null; i = r.exec(e)) {
5300
+ let a = i[1] ?? "", o = vc(i[2] ?? ""), s = o ? yc(o) : null;
5301
+ if (!s) continue;
5302
+ let c = i.index + a.length;
5303
+ c > n && t.push({
5304
+ type: "text",
5305
+ value: e.slice(n, c)
5306
+ }), t.push({
5307
+ type: "link",
5308
+ href: s,
5309
+ label: o
5310
+ }), n = c + o.length, r.lastIndex = n;
5311
+ }
5312
+ return n < e.length && t.push({
5313
+ type: "text",
5314
+ value: e.slice(n)
5315
+ }), t;
5129
5316
  }
5130
5317
  //#endregion
5131
5318
  //#region src/runtime/ui/mentions.tsx
5132
- function Ys({ body: e, mentions: t, trailing: n }) {
5319
+ function xc({ body: e, mentions: t, trailing: n }) {
5133
5320
  let r = at(() => new Set(t), [t]);
5134
5321
  return /* @__PURE__ */ Q("p", {
5135
5322
  class: "markup-comment-body",
5136
- children: [at(() => Kr(e), [e]).map((e, t) => e.type === "mention" && r.has(e.userId) ? /* @__PURE__ */ Q("span", {
5323
+ children: [at(() => Kr(e), [e]).map((e, t) => e.type === "mention" ? r.has(e.userId) ? /* @__PURE__ */ Q("span", {
5137
5324
  class: "markup-mention-chip",
5138
5325
  children: ["@", e.name]
5139
- }, t) : /* @__PURE__ */ Q("span", { children: e.type === "mention" ? `@${e.name}` : e.value }, t)), n]
5326
+ }, t) : /* @__PURE__ */ Q("span", { children: ["@", e.name] }, t) : bc(e.value).map((e, n) => e.type === "link" ? /* @__PURE__ */ Q("a", {
5327
+ class: "markup-comment-link",
5328
+ href: e.href,
5329
+ target: "_blank",
5330
+ rel: "noopener noreferrer",
5331
+ children: e.label
5332
+ }, `${t}-${n}`) : /* @__PURE__ */ Q("span", { children: e.value }, `${t}-${n}`))), n]
5140
5333
  });
5141
5334
  }
5142
- function Xs(e) {
5335
+ function Sc(e) {
5143
5336
  let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = z(0), s = at(() => {
5144
5337
  if (!n) return [];
5145
5338
  let e = n.query.toLowerCase();
@@ -5167,12 +5360,12 @@ function Xs(e) {
5167
5360
  handleKeyDown: c
5168
5361
  };
5169
5362
  }
5170
- function Zs({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5363
+ function Cc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5171
5364
  let a = V(null);
5172
5365
  return it(() => {
5173
5366
  let e = null;
5174
5367
  function t() {
5175
- i.current && a.current && ec(i.current, a.current);
5368
+ i.current && a.current && Ec(i.current, a.current);
5176
5369
  }
5177
5370
  function n() {
5178
5371
  e ??= requestAnimationFrame(() => {
@@ -5214,16 +5407,16 @@ function Zs({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i })
5214
5407
  }, e.userId))
5215
5408
  });
5216
5409
  }
5217
- var Qs = 4, $s = 8;
5218
- function ec(e, t) {
5410
+ var wc = 4, Tc = 8;
5411
+ function Ec(e, t) {
5219
5412
  let n = e.getBoundingClientRect(), r = n.bottom > 0 && n.top < window.innerHeight && n.right > 0 && n.left < window.innerWidth;
5220
5413
  if (t.style.visibility = r ? "" : "hidden", !r) return;
5221
- let i = t.offsetHeight, a = n.top - $s, o = window.innerHeight - n.bottom - $s, s = a >= i + Qs || a >= o ? n.top - Qs - i : n.bottom + Qs, c = window.innerHeight - i - $s;
5222
- t.style.top = `${Math.max($s, Math.min(s, c))}px`, t.style.left = `${n.left}px`, t.style.width = `${n.width}px`;
5414
+ let i = t.offsetHeight, a = n.top - Tc, o = window.innerHeight - n.bottom - Tc, s = a >= i + wc || a >= o ? n.top - wc - i : n.bottom + wc, c = window.innerHeight - i - Tc;
5415
+ t.style.top = `${Math.max(Tc, Math.min(s, c))}px`, t.style.left = `${n.left}px`, t.style.width = `${n.width}px`;
5223
5416
  }
5224
5417
  //#endregion
5225
5418
  //#region src/runtime/ui/mention-input.tsx
5226
- function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
5419
+ function Dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeholder: a, disabled: o = !1, autoFocus: s = !1, class: c, handle: l }) {
5227
5420
  let u = V(null), d = V(null), [f, p] = z(null), m = V(t);
5228
5421
  m.current = t;
5229
5422
  let h = V(r);
@@ -5232,7 +5425,7 @@ function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5232
5425
  it(() => {
5233
5426
  let e = u.current;
5234
5427
  if (!e) return;
5235
- let t = Ks(e, {
5428
+ let t = dc(e, {
5236
5429
  chipClass: "markup-mention-chip",
5237
5430
  initialValue: g.current,
5238
5431
  onChange: (e) => m.current(e),
@@ -5252,7 +5445,7 @@ function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5252
5445
  let t = d.current;
5253
5446
  t && t.getValue() !== e && t.setValue(e);
5254
5447
  }, [e]);
5255
- let _ = Xs({
5448
+ let _ = Sc({
5256
5449
  members: r ?? [],
5257
5450
  trigger: f,
5258
5451
  onSelect: (e) => d.current?.insertMention(e),
@@ -5265,7 +5458,7 @@ function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5265
5458
  "aria-label": i,
5266
5459
  "aria-disabled": o || void 0,
5267
5460
  class: Z("markup-mention-input", c),
5268
- contentEditable: o ? "false" : Js(),
5461
+ contentEditable: o ? "false" : pc(),
5269
5462
  "data-placeholder": a,
5270
5463
  tabIndex: o ? -1 : 0,
5271
5464
  onKeyDown: (e) => {
@@ -5274,7 +5467,7 @@ function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5274
5467
  onBlur: () => {
5275
5468
  setTimeout(() => d.current?.clearTrigger(), 120);
5276
5469
  }
5277
- }), _.isOpen ? /* @__PURE__ */ Q(Zs, {
5470
+ }), _.isOpen ? /* @__PURE__ */ Q(Cc, {
5278
5471
  items: _.items,
5279
5472
  highlight: _.highlight,
5280
5473
  setHighlight: _.setHighlight,
@@ -5284,8 +5477,8 @@ function tc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5284
5477
  }
5285
5478
  //#endregion
5286
5479
  //#region src/runtime/ui/composer.tsx
5287
- var nc = 4e3;
5288
- function rc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
5480
+ var Oc = 4e3;
5481
+ function kc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "Post", initialFocus: r = !0, isPending: i, error: a, onSubmit: o, onDirtyChange: s, members: c }) {
5289
5482
  let [l, u] = z(""), d = V(null), f = V(!1);
5290
5483
  B(() => {
5291
5484
  f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
@@ -5294,7 +5487,7 @@ function rc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5294
5487
  a,
5295
5488
  s
5296
5489
  ]);
5297
- let p = nc - l.length, m = p < 0;
5490
+ let p = Oc - l.length, m = p < 0;
5298
5491
  function h(e) {
5299
5492
  e?.preventDefault();
5300
5493
  let t = l.trim();
@@ -5303,7 +5496,7 @@ function rc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5303
5496
  function g(e) {
5304
5497
  (e.metaKey || e.ctrlKey) && e.key === "Enter" && h(e);
5305
5498
  }
5306
- let _ = l.length > 0, v = Xo();
5499
+ let _ = l.length > 0, v = hs();
5307
5500
  function y(e) {
5308
5501
  return /* @__PURE__ */ Q("button", {
5309
5502
  type: "submit",
@@ -5312,14 +5505,14 @@ function rc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5312
5505
  "aria-label": i ? "Sending…" : n,
5313
5506
  title: i ? "Sending…" : n,
5314
5507
  tabIndex: e,
5315
- children: /* @__PURE__ */ Q(is, { size: 14 })
5508
+ children: /* @__PURE__ */ Q(Cs, { size: 14 })
5316
5509
  });
5317
5510
  }
5318
5511
  return /* @__PURE__ */ Q("form", {
5319
5512
  class: Z("markup-composer", _ && "is-filled"),
5320
5513
  onSubmit: h,
5321
5514
  children: [
5322
- /* @__PURE__ */ Q(tc, {
5515
+ /* @__PURE__ */ Q(Dc, {
5323
5516
  class: "markup-composer-input",
5324
5517
  label: e,
5325
5518
  placeholder: t,
@@ -5375,17 +5568,17 @@ function rc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5375
5568
  }
5376
5569
  //#endregion
5377
5570
  //#region src/runtime/ui/new-thread-popover.tsx
5378
- var ic = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5379
- function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, isPending: s, error: c, screenshot: l, isScreenshotCapturing: u, screenshotFailed: d, screenshotRedactedCount: f, screenshotRedactedSelectors: p, members: m = [], onAuthor: h, onSignIn: g, onSignOut: _, onSubmit: v, onClose: y }) {
5571
+ var Ac = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5572
+ function jc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, isPending: s, error: c, screenshot: l, isScreenshotCapturing: u, screenshotFailed: d, screenshotRedactedCount: f, screenshotRedactedSelectors: p, members: m = [], onAuthor: h, onSignIn: g, onSignOut: _, onSubmit: v, onClose: y }) {
5380
5573
  let b = V(null);
5381
- Es(b, !0);
5574
+ Gs(b, !0);
5382
5575
  let x = V(!1), C = V(!1), [w, T] = z(!1), E = H((e) => {
5383
5576
  C.current = e, T(e);
5384
5577
  }, []), D = H(() => {
5385
5578
  C.current || (x.current ? E(!0) : y());
5386
5579
  }, [y, E]), O = H(() => {
5387
5580
  E(!1), b.current?.querySelector(".markup-mention-input")?.focus();
5388
- }, [E]), [k, A] = z(!1), [ee, te] = z(!1), j = Ds(l), M = V(null), [ne, re] = z(null), { onPointerDown: ie, isDragging: ae } = Cs({
5581
+ }, [E]), [k, A] = z(!1), [ee, te] = z(!1), j = Ks(l), M = V(null), [ne, re] = z(null), { onPointerDown: ie, isDragging: ae } = Hs({
5389
5582
  targetRef: b,
5390
5583
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
5391
5584
  onMove: re
@@ -5416,7 +5609,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5416
5609
  }, [D, O]), B(() => {
5417
5610
  w && b.current?.querySelector(".markup-discard-confirm-keep")?.focus();
5418
5611
  }, [w]);
5419
- let oe = oc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), se = oc(t - window.scrollY - 16, 12, window.innerHeight - 220), ce = typeof window < "u" ? window.location.href : "", le = l != null, ue = u || le || d, de = k && le;
5612
+ let oe = Mc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), se = Mc(t - window.scrollY - 16, 12, window.innerHeight - 220), ce = typeof window < "u" ? window.location.href : "", le = l != null, ue = u || le || d, de = k && le;
5420
5613
  return /* @__PURE__ */ Q("div", {
5421
5614
  ref: b,
5422
5615
  class: Z("markup-popover", ne && "is-floating", ae && "is-dragging"),
@@ -5440,7 +5633,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5440
5633
  class: "markup-icon-btn",
5441
5634
  "aria-label": "Discard pin",
5442
5635
  onClick: D,
5443
- children: /* @__PURE__ */ Q($o, { size: 16 })
5636
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
5444
5637
  })]
5445
5638
  }),
5446
5639
  r == null ? /* @__PURE__ */ Q("div", {
@@ -5460,7 +5653,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5460
5653
  }) : null
5461
5654
  ]
5462
5655
  }),
5463
- /* @__PURE__ */ Q(rc, {
5656
+ /* @__PURE__ */ Q(kc, {
5464
5657
  label: "Feedback",
5465
5658
  placeholder: "What's wrong, missing, or worth noting?",
5466
5659
  submitLabel: "Post markup",
@@ -5485,13 +5678,13 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5485
5678
  class: "markup-screenshot-checkbox",
5486
5679
  disabled: !0
5487
5680
  }),
5488
- /* @__PURE__ */ Q(rs, { size: 12 }),
5681
+ /* @__PURE__ */ Q(Ss, { size: 12 }),
5489
5682
  /* @__PURE__ */ Q("span", { children: "Capturing…" })
5490
5683
  ]
5491
5684
  }) : d ? /* @__PURE__ */ Q("span", {
5492
5685
  class: "markup-screenshot-status",
5493
5686
  title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
5494
- children: [/* @__PURE__ */ Q(rs, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
5687
+ children: [/* @__PURE__ */ Q(Ss, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
5495
5688
  }) : /* @__PURE__ */ Q("label", {
5496
5689
  class: "markup-screenshot-toggle",
5497
5690
  children: [
@@ -5501,7 +5694,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5501
5694
  checked: k,
5502
5695
  onChange: (e) => A(e.currentTarget.checked)
5503
5696
  }),
5504
- /* @__PURE__ */ Q(rs, { size: 12 }),
5697
+ /* @__PURE__ */ Q(Ss, { size: 12 }),
5505
5698
  /* @__PURE__ */ Q("span", { children: "Attach screenshot" })
5506
5699
  ]
5507
5700
  }),
@@ -5552,7 +5745,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5552
5745
  " ",
5553
5746
  /* @__PURE__ */ Q("a", {
5554
5747
  class: "markup-screenshot-help-link",
5555
- href: ic,
5748
+ href: Ac,
5556
5749
  target: "_blank",
5557
5750
  rel: "noopener noreferrer",
5558
5751
  children: "More info here."
@@ -5561,7 +5754,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5561
5754
  })] }) : null]
5562
5755
  }) : null
5563
5756
  ]
5564
- }) : /* @__PURE__ */ Q(Os, {
5757
+ }) : /* @__PURE__ */ Q(qs, {
5565
5758
  mode: r,
5566
5759
  isPending: s,
5567
5760
  isConnecting: a,
@@ -5582,7 +5775,7 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5582
5775
  onClick: (e) => {
5583
5776
  e.stopPropagation(), M.current?.close();
5584
5777
  },
5585
- children: /* @__PURE__ */ Q($o, { size: 16 })
5778
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
5586
5779
  }), /* @__PURE__ */ Q("img", {
5587
5780
  class: "markup-lightbox-img",
5588
5781
  src: j,
@@ -5625,12 +5818,12 @@ function ac({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5625
5818
  ]
5626
5819
  });
5627
5820
  }
5628
- function oc(e, t, n) {
5821
+ function Mc(e, t, n) {
5629
5822
  return Math.max(t, Math.min(n, e));
5630
5823
  }
5631
5824
  //#endregion
5632
5825
  //#region src/runtime/ui/notifications-panel.tsx
5633
- function sc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMarkAllRead: a, isMarkingAll: o }) {
5826
+ function Nc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMarkAllRead: a, isMarkingAll: o }) {
5634
5827
  let s = e.some((e) => e.readAt == null);
5635
5828
  return /* @__PURE__ */ Q("div", {
5636
5829
  class: "markup-notifications-panel",
@@ -5645,7 +5838,7 @@ function sc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5645
5838
  title: "Back to menu",
5646
5839
  "aria-label": "Back to menu",
5647
5840
  onClick: r,
5648
- children: /* @__PURE__ */ Q(es, { size: 16 })
5841
+ children: /* @__PURE__ */ Q(ys, { size: 16 })
5649
5842
  }),
5650
5843
  /* @__PURE__ */ Q("span", {
5651
5844
  class: "markup-eyebrow",
@@ -5702,7 +5895,7 @@ function sc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5702
5895
  role: "img",
5703
5896
  "aria-label": "Written by an AI agent",
5704
5897
  title: "Written by an AI agent on this person's behalf",
5705
- children: /* @__PURE__ */ Q(ys, { size: 11 })
5898
+ children: /* @__PURE__ */ Q(Rs, { size: 11 })
5706
5899
  }) : null,
5707
5900
  /* @__PURE__ */ Q("span", {
5708
5901
  class: "markup-notifications-panel-sep",
@@ -5710,7 +5903,7 @@ function sc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5710
5903
  }),
5711
5904
  /* @__PURE__ */ Q("span", {
5712
5905
  class: "markup-notifications-panel-time",
5713
- children: cc(e.createdAt)
5906
+ children: Pc(e.createdAt)
5714
5907
  })
5715
5908
  ]
5716
5909
  }),
@@ -5739,7 +5932,7 @@ function sc({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5739
5932
  })]
5740
5933
  });
5741
5934
  }
5742
- function cc(e) {
5935
+ function Pc(e) {
5743
5936
  let t = Date.now() - e, n = Math.floor(t / 1e3);
5744
5937
  if (n < 60) return "just now";
5745
5938
  let r = Math.floor(n / 60);
@@ -5751,18 +5944,18 @@ function cc(e) {
5751
5944
  }
5752
5945
  //#endregion
5753
5946
  //#region src/runtime/use-theme.ts
5754
- function lc() {
5947
+ function Fc() {
5755
5948
  let [, e] = z(0);
5756
- return B(() => Ue(() => e((e) => e + 1)), []), {
5757
- mode: Be(),
5758
- resolved: Ve(),
5759
- set: He
5949
+ return B(() => We(() => e((e) => e + 1)), []), {
5950
+ mode: Ve(),
5951
+ resolved: He(),
5952
+ set: Ue
5760
5953
  };
5761
5954
  }
5762
5955
  //#endregion
5763
5956
  //#region src/runtime/ui/overflow-menu.tsx
5764
- function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, onOpenPrivacy: s, onOpenShortcuts: c, onHideForSession: l, version: u, dashboardUrl: d }) {
5765
- let [f, p] = z(!1), m = V(null), h = lc();
5957
+ function Ic({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked: r = !1, onToggleAutoCapture: i, showResolved: a, onToggleShowResolved: o, onOpenPrivacy: s, onOpenShortcuts: c, onHideForSession: l, version: u, dashboardUrl: d }) {
5958
+ let [f, p] = z(!1), m = V(null), h = Fc();
5766
5959
  B(() => {
5767
5960
  if (!f) return;
5768
5961
  function e(e) {
@@ -5776,7 +5969,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5776
5969
  document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
5777
5970
  };
5778
5971
  }, [f]);
5779
- let g = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: _ } = Xo();
5972
+ let g = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: _ } = hs();
5780
5973
  return /* @__PURE__ */ Q("div", {
5781
5974
  ref: m,
5782
5975
  style: {
@@ -5795,7 +5988,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5795
5988
  onClick: (e) => {
5796
5989
  e.preventDefault(), e.stopPropagation(), p((e) => !e);
5797
5990
  },
5798
- children: /* @__PURE__ */ Q(us, { size: 16 })
5991
+ children: /* @__PURE__ */ Q(ks, { size: 16 })
5799
5992
  }), f ? /* @__PURE__ */ Q("div", {
5800
5993
  class: Z("markup-pop", g),
5801
5994
  "data-pop": "overflow",
@@ -5819,7 +6012,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5819
6012
  title: "Light",
5820
6013
  class: Z(h.mode === "light" && "is-on"),
5821
6014
  onClick: () => h.set("light"),
5822
- children: /* @__PURE__ */ Q(ds, { size: 14 })
6015
+ children: /* @__PURE__ */ Q(As, { size: 14 })
5823
6016
  }),
5824
6017
  /* @__PURE__ */ Q("button", {
5825
6018
  type: "button",
@@ -5829,7 +6022,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5829
6022
  title: "Dark",
5830
6023
  class: Z(h.mode === "dark" && "is-on"),
5831
6024
  onClick: () => h.set("dark"),
5832
- children: /* @__PURE__ */ Q(fs, { size: 14 })
6025
+ children: /* @__PURE__ */ Q(js, { size: 14 })
5833
6026
  }),
5834
6027
  /* @__PURE__ */ Q("button", {
5835
6028
  type: "button",
@@ -5839,7 +6032,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5839
6032
  title: `Auto, currently ${h.resolved}`,
5840
6033
  class: Z(h.mode === "auto" && "is-on"),
5841
6034
  onClick: () => h.set("auto"),
5842
- children: /* @__PURE__ */ Q(ps, { size: 14 })
6035
+ children: /* @__PURE__ */ Q(Ms, { size: 14 })
5843
6036
  })
5844
6037
  ]
5845
6038
  })]
@@ -5862,7 +6055,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5862
6055
  title: "Bottom left",
5863
6056
  class: Z(e === "bottom-left" && "is-on"),
5864
6057
  onClick: () => t("bottom-left"),
5865
- children: /* @__PURE__ */ Q(dc, { side: "left" })
6058
+ children: /* @__PURE__ */ Q(Lc, { side: "left" })
5866
6059
  }),
5867
6060
  /* @__PURE__ */ Q("button", {
5868
6061
  type: "button",
@@ -5872,7 +6065,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5872
6065
  title: "Bottom center",
5873
6066
  class: Z(e === "bottom-center" && "is-on"),
5874
6067
  onClick: () => t("bottom-center"),
5875
- children: /* @__PURE__ */ Q(dc, { side: "center" })
6068
+ children: /* @__PURE__ */ Q(Lc, { side: "center" })
5876
6069
  }),
5877
6070
  /* @__PURE__ */ Q("button", {
5878
6071
  type: "button",
@@ -5882,7 +6075,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5882
6075
  title: "Bottom right",
5883
6076
  class: Z(e === "bottom-right" && "is-on"),
5884
6077
  onClick: () => t("bottom-right"),
5885
- children: /* @__PURE__ */ Q(dc, { side: "right" })
6078
+ children: /* @__PURE__ */ Q(Lc, { side: "right" })
5886
6079
  })
5887
6080
  ]
5888
6081
  })]
@@ -5904,7 +6097,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5904
6097
  children: [
5905
6098
  /* @__PURE__ */ Q("span", {
5906
6099
  class: "ic",
5907
- children: /* @__PURE__ */ Q(fc, {})
6100
+ children: /* @__PURE__ */ Q(Rc, {})
5908
6101
  }),
5909
6102
  /* @__PURE__ */ Q("span", {
5910
6103
  class: "lbl",
@@ -5931,7 +6124,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5931
6124
  children: [
5932
6125
  /* @__PURE__ */ Q("span", {
5933
6126
  class: "ic",
5934
- children: /* @__PURE__ */ Q(ns, { size: 16 })
6127
+ children: /* @__PURE__ */ Q(xs, { size: 16 })
5935
6128
  }),
5936
6129
  /* @__PURE__ */ Q("span", {
5937
6130
  class: "lbl",
@@ -5955,7 +6148,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5955
6148
  },
5956
6149
  children: [/* @__PURE__ */ Q("span", {
5957
6150
  class: "ic",
5958
- children: /* @__PURE__ */ Q(ms, { size: 16 })
6151
+ children: /* @__PURE__ */ Q(Ns, { size: 16 })
5959
6152
  }), /* @__PURE__ */ Q("span", {
5960
6153
  class: "lbl",
5961
6154
  children: "Privacy & data"
@@ -5970,7 +6163,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5970
6163
  },
5971
6164
  children: [/* @__PURE__ */ Q("span", {
5972
6165
  class: "ic",
5973
- children: /* @__PURE__ */ Q(hs, { size: 16 })
6166
+ children: /* @__PURE__ */ Q(Ps, { size: 16 })
5974
6167
  }), /* @__PURE__ */ Q("span", {
5975
6168
  class: "lbl",
5976
6169
  children: "Keyboard shortcuts"
@@ -5987,7 +6180,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5987
6180
  children: [
5988
6181
  /* @__PURE__ */ Q("span", {
5989
6182
  class: "ic",
5990
- children: /* @__PURE__ */ Q(pc, {})
6183
+ children: /* @__PURE__ */ Q(zc, {})
5991
6184
  }),
5992
6185
  /* @__PURE__ */ Q("span", {
5993
6186
  class: "lbl",
@@ -6005,7 +6198,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6005
6198
  target: "_blank",
6006
6199
  rel: "noopener noreferrer",
6007
6200
  children: [
6008
- /* @__PURE__ */ Q(Qo, { size: 12 }),
6201
+ /* @__PURE__ */ Q(_s, { size: 12 }),
6009
6202
  /* @__PURE__ */ Q("span", { children: "Powered by Markup" }),
6010
6203
  /* @__PURE__ */ Q("span", {
6011
6204
  class: "ver",
@@ -6017,7 +6210,7 @@ function uc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6017
6210
  }) : null]
6018
6211
  });
6019
6212
  }
6020
- function dc({ side: e }) {
6213
+ function Lc({ side: e }) {
6021
6214
  return /* @__PURE__ */ Q("svg", {
6022
6215
  width: 14,
6023
6216
  height: 14,
@@ -6043,7 +6236,7 @@ function dc({ side: e }) {
6043
6236
  })]
6044
6237
  });
6045
6238
  }
6046
- function fc() {
6239
+ function Rc() {
6047
6240
  return /* @__PURE__ */ Q("svg", {
6048
6241
  width: 16,
6049
6242
  height: 16,
@@ -6061,7 +6254,7 @@ function fc() {
6061
6254
  })]
6062
6255
  });
6063
6256
  }
6064
- function pc() {
6257
+ function zc() {
6065
6258
  return /* @__PURE__ */ Q("svg", {
6066
6259
  width: 16,
6067
6260
  height: 16,
@@ -6082,7 +6275,7 @@ function pc() {
6082
6275
  }
6083
6276
  //#endregion
6084
6277
  //#region src/runtime/ui/panel-popover.tsx
6085
- function mc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i, children: a }) {
6278
+ function Bc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i, children: a }) {
6086
6279
  let o = V(null);
6087
6280
  return B(() => {
6088
6281
  function e(e) {
@@ -6112,7 +6305,7 @@ function mc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i,
6112
6305
  }
6113
6306
  //#endregion
6114
6307
  //#region src/runtime/ui/pin.tsx
6115
- function hc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, onClick: o }) {
6308
+ function Vc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClosed: a = !1, onClick: o }) {
6116
6309
  let s = t - window.scrollY, c = e - window.scrollX;
6117
6310
  return /* @__PURE__ */ Q("button", {
6118
6311
  type: "button",
@@ -6128,11 +6321,11 @@ function hc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClos
6128
6321
  title: `Open ${a ? "resolved " : ""}feedback thread (${n} comment${n === 1 ? "" : "s"})`,
6129
6322
  children: /* @__PURE__ */ Q("span", {
6130
6323
  class: "markup-pin-num",
6131
- children: a ? /* @__PURE__ */ Q(ns, { size: 14 }) : n
6324
+ children: a ? /* @__PURE__ */ Q(xs, { size: 14 }) : n
6132
6325
  })
6133
6326
  });
6134
6327
  }
6135
- function gc({ pageX: e, pageY: t }) {
6328
+ function Hc({ pageX: e, pageY: t }) {
6136
6329
  let n = t - window.scrollY, r = e - window.scrollX;
6137
6330
  return /* @__PURE__ */ Q("div", {
6138
6331
  class: "markup-pin markup-pin-ghost is-anchor",
@@ -6149,7 +6342,7 @@ function gc({ pageX: e, pageY: t }) {
6149
6342
  }
6150
6343
  //#endregion
6151
6344
  //#region src/runtime/ui/placement-overlay.tsx
6152
- function _c({ onPlace: e, onCancel: t }) {
6345
+ function Uc({ onPlace: e, onCancel: t }) {
6153
6346
  let n = V(null);
6154
6347
  return it(() => {
6155
6348
  let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
@@ -6174,7 +6367,7 @@ function _c({ onPlace: e, onCancel: t }) {
6174
6367
  window.addEventListener("keydown", a);
6175
6368
  for (let e of l) window.addEventListener(e, o, c);
6176
6369
  window.addEventListener("click", s, c);
6177
- let u = vc();
6370
+ let u = Wc();
6178
6371
  return () => {
6179
6372
  window.removeEventListener("keydown", a);
6180
6373
  for (let e of l) window.removeEventListener(e, o, c);
@@ -6190,7 +6383,7 @@ function _c({ onPlace: e, onCancel: t }) {
6190
6383
  })
6191
6384
  });
6192
6385
  }
6193
- function vc() {
6386
+ function Wc() {
6194
6387
  let e = "html, html * { cursor: crosshair !important; }";
6195
6388
  if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
6196
6389
  let t = new CSSStyleSheet();
@@ -6203,7 +6396,7 @@ function vc() {
6203
6396
  }
6204
6397
  //#endregion
6205
6398
  //#region src/runtime/ui/privacy-panel.tsx
6206
- function yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onClose: c }) {
6399
+ function Gc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture: r, autoCaptureLocked: i, isForgettingMe: a, forgetMeError: o, onForgetMe: s, onClose: c }) {
6207
6400
  let [l, u] = z(!1), d = ta(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
6208
6401
  return /* @__PURE__ */ Q("div", {
6209
6402
  class: "markup-panel",
@@ -6218,7 +6411,7 @@ function yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6218
6411
  title: "Close",
6219
6412
  "aria-label": "Close privacy and data",
6220
6413
  onClick: c,
6221
- children: /* @__PURE__ */ Q($o, { size: 14 })
6414
+ children: /* @__PURE__ */ Q(vs, { size: 14 })
6222
6415
  })]
6223
6416
  }), /* @__PURE__ */ Q("div", {
6224
6417
  class: "markup-panel-body",
@@ -6303,7 +6496,7 @@ function yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6303
6496
  "Only ",
6304
6497
  /* @__PURE__ */ Q("span", {
6305
6498
  class: "markup-panel-mono",
6306
- children: bc(t)
6499
+ children: Kc(t)
6307
6500
  }),
6308
6501
  ". 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."
6309
6502
  ]
@@ -6339,7 +6532,7 @@ function yc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6339
6532
  })]
6340
6533
  });
6341
6534
  }
6342
- function bc(e) {
6535
+ function Kc(e) {
6343
6536
  try {
6344
6537
  return new URL(e).host;
6345
6538
  } catch {
@@ -6348,8 +6541,8 @@ function bc(e) {
6348
6541
  }
6349
6542
  //#endregion
6350
6543
  //#region src/runtime/ui/shortcuts-panel.tsx
6351
- function xc({ onClose: e }) {
6352
- let { mod: t, enter: n } = Xo();
6544
+ function qc({ onClose: e }) {
6545
+ let { mod: t, enter: n } = hs();
6353
6546
  return /* @__PURE__ */ Q("div", {
6354
6547
  class: "markup-panel",
6355
6548
  children: [/* @__PURE__ */ Q("header", {
@@ -6363,7 +6556,7 @@ function xc({ onClose: e }) {
6363
6556
  title: "Close",
6364
6557
  "aria-label": "Close keyboard shortcuts",
6365
6558
  onClick: e,
6366
- children: /* @__PURE__ */ Q($o, { size: 14 })
6559
+ children: /* @__PURE__ */ Q(vs, { size: 14 })
6367
6560
  })]
6368
6561
  }), /* @__PURE__ */ Q("div", {
6369
6562
  class: "markup-panel-body",
@@ -6443,14 +6636,14 @@ function xc({ onClose: e }) {
6443
6636
  }
6444
6637
  //#endregion
6445
6638
  //#region src/runtime/ui/thread-popover.tsx
6446
- var Sc = [
6639
+ var Jc = [
6447
6640
  "👍",
6448
6641
  "❤️",
6449
6642
  "🎉",
6450
6643
  "😮",
6451
6644
  "😄",
6452
6645
  "❓"
6453
- ], Cc = Ur({
6646
+ ], Yc = Ur({
6454
6647
  none: {
6455
6648
  "toggle-thread-menu": () => ({
6456
6649
  kind: "thread-menu",
@@ -6506,13 +6699,13 @@ var Sc = [
6506
6699
  dismiss: () => ({ kind: "none" })
6507
6700
  }
6508
6701
  });
6509
- function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, canDelete: s, isPending: c, error: l, isHidden: u = !1, members: d = [], onAuthor: f, onSignIn: p, onSignOut: m, onClose: h, onReply: g, onEditComment: _, onDeleteComment: v, onToggleReaction: y, onResolve: b, onDelete: x }) {
6510
- let S = V(null), C = V(null), w = V(null), T = V(null), [E, D] = Wr(Cc, { kind: "none" }), [O, k] = z(null), { onPointerDown: A, isDragging: ee } = Cs({
6702
+ function Xc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r, isVerified: i, isIdentityResolving: a, isSigningIn: o, canDelete: s, isPending: c, error: l, isHidden: u = !1, members: d = [], onAuthor: f, onSignIn: p, onSignOut: m, onClose: h, onReply: g, onEditComment: _, onDeleteComment: v, onToggleReaction: y, onResolve: b, onDelete: x }) {
6703
+ let S = V(null), C = V(null), w = V(null), T = V(null), [E, D] = Wr(Yc, { kind: "none" }), [O, k] = z(null), { onPointerDown: A, isDragging: ee } = Hs({
6511
6704
  targetRef: S,
6512
6705
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
6513
6706
  onMove: k
6514
6707
  });
6515
- Es(S, !0);
6708
+ Gs(S, !0);
6516
6709
  let te = e.resolvedAt != null, j = at(() => e.comments.filter((e) => !e.deleted), [e.comments]);
6517
6710
  B(() => {
6518
6711
  if (E.kind === "none" || E.kind === "editing") return;
@@ -6563,8 +6756,8 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6563
6756
  anchorText: e.anchorText
6564
6757
  });
6565
6758
  return {
6566
- left: Oc(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
6567
- top: Oc(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
6759
+ left: el(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
6760
+ top: el(t.pageY - window.scrollY - 16, 12, window.innerHeight - 200)
6568
6761
  };
6569
6762
  }, [
6570
6763
  e.anchorX,
@@ -6605,15 +6798,15 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6605
6798
  class: Z("markup-icon-btn", E.kind === "thread-menu" && "is-open"),
6606
6799
  title: "More options",
6607
6800
  onClick: () => D({ type: "toggle-thread-menu" }),
6608
- children: /* @__PURE__ */ Q(ts, { size: 16 })
6801
+ children: /* @__PURE__ */ Q(bs, { size: 16 })
6609
6802
  }), E.kind === "thread-menu" ? /* @__PURE__ */ Q("div", {
6610
6803
  class: "markup-thread-menu-list",
6611
6804
  children: [/* @__PURE__ */ Q("button", {
6612
6805
  type: "button",
6613
6806
  class: "markup-thread-menu-item",
6614
6807
  onClick: () => {
6615
- let t = new URL(e.url);
6616
- t.hash = `markup-thread=${e._id}`, navigator.clipboard.writeText(t.toString()).catch(() => {}), D({ type: "dismiss" });
6808
+ let t = _a(e.url, e._id);
6809
+ t && navigator.clipboard.writeText(t).catch(() => {}), D({ type: "dismiss" });
6617
6810
  },
6618
6811
  children: "Copy link"
6619
6812
  }), s ? /* @__PURE__ */ Q("button", {
@@ -6633,14 +6826,14 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6633
6826
  title: "Mark as resolved",
6634
6827
  disabled: c,
6635
6828
  onClick: b,
6636
- children: /* @__PURE__ */ Q(ns, { size: 16 })
6829
+ children: /* @__PURE__ */ Q(xs, { size: 16 })
6637
6830
  }) : null,
6638
6831
  /* @__PURE__ */ Q("button", {
6639
6832
  type: "button",
6640
6833
  class: "markup-icon-btn",
6641
6834
  title: "Close thread",
6642
6835
  onClick: h,
6643
- children: /* @__PURE__ */ Q($o, { size: 16 })
6836
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
6644
6837
  })
6645
6838
  ]
6646
6839
  })]
@@ -6653,10 +6846,10 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6653
6846
  return /* @__PURE__ */ Q("li", {
6654
6847
  class: Z("markup-comment", M.current != null && t.createdAt > M.current && "is-new"),
6655
6848
  children: [
6656
- /* @__PURE__ */ Q(kc, {
6849
+ /* @__PURE__ */ Q(tl, {
6657
6850
  name: t.authorName,
6658
6851
  image: t.authorImage,
6659
- tone: jc(t.authorClientId ?? t.authorName)
6852
+ tone: rl(t.authorClientId ?? t.authorName)
6660
6853
  }),
6661
6854
  /* @__PURE__ */ Q("div", {
6662
6855
  class: "markup-comment-meta",
@@ -6670,23 +6863,23 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6670
6863
  role: "img",
6671
6864
  "aria-label": "Written by an AI agent",
6672
6865
  title: "Written by an AI agent",
6673
- children: /* @__PURE__ */ Q(ys, { size: 11 })
6866
+ children: /* @__PURE__ */ Q(Rs, { size: 11 })
6674
6867
  }) : null,
6675
6868
  /* @__PURE__ */ Q("time", {
6676
6869
  class: "markup-comment-time",
6677
6870
  datetime: new Date(t.createdAt).toISOString(),
6678
- title: Nc(t.createdAt),
6679
- children: Mc(t.createdAt)
6871
+ title: al(t.createdAt),
6872
+ children: il(t.createdAt)
6680
6873
  }),
6681
6874
  t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
6682
6875
  class: "markup-comment-edited",
6683
6876
  datetime: new Date(t.editedAt).toISOString(),
6684
- title: Nc(t.editedAt),
6877
+ title: al(t.editedAt),
6685
6878
  children: "edited"
6686
6879
  }),
6687
6880
  /* @__PURE__ */ Q("div", {
6688
6881
  class: "markup-thread-actions",
6689
- children: [!te && !l ? /* @__PURE__ */ Q(Tc, {
6882
+ children: [!te && !l ? /* @__PURE__ */ Q(Zc, {
6690
6883
  comment: t,
6691
6884
  pickerOpen: m,
6692
6885
  pickerDirection: h,
@@ -6754,7 +6947,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6754
6947
  direction: a < i ? "up" : "down"
6755
6948
  });
6756
6949
  },
6757
- children: /* @__PURE__ */ Q(ts, { size: 16 })
6950
+ children: /* @__PURE__ */ Q(bs, { size: 16 })
6758
6951
  }), f ? /* @__PURE__ */ Q("div", {
6759
6952
  class: "markup-thread-menu-list",
6760
6953
  children: [o ? /* @__PURE__ */ Q("button", {
@@ -6794,7 +6987,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6794
6987
  await _(t._id, n), D({ type: "dismiss" });
6795
6988
  } catch {}
6796
6989
  },
6797
- children: [/* @__PURE__ */ Q(tc, {
6990
+ children: [/* @__PURE__ */ Q(Dc, {
6798
6991
  class: "markup-comment-edit-input",
6799
6992
  label: "Edit comment",
6800
6993
  value: E.draft,
@@ -6820,7 +7013,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6820
7013
  children: "Save"
6821
7014
  })]
6822
7015
  })]
6823
- }) : /* @__PURE__ */ Q(Ys, {
7016
+ }) : /* @__PURE__ */ Q(xc, {
6824
7017
  body: t.body,
6825
7018
  mentions: t.mentions
6826
7019
  }),
@@ -6833,7 +7026,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6833
7026
  alt: "Screenshot"
6834
7027
  })
6835
7028
  }) : null,
6836
- !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Ec, {
7029
+ !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Qc, {
6837
7030
  comment: t,
6838
7031
  isResolved: te,
6839
7032
  onToggle: (e) => y(t._id, e)
@@ -6853,7 +7046,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6853
7046
  onClick: (e) => {
6854
7047
  e.stopPropagation(), w.current?.close();
6855
7048
  },
6856
- children: /* @__PURE__ */ Q($o, { size: 16 })
7049
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
6857
7050
  }), /* @__PURE__ */ Q("img", {
6858
7051
  class: "markup-lightbox-img",
6859
7052
  src: e.screenshotUrl,
@@ -6876,7 +7069,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6876
7069
  children: "team"
6877
7070
  }) : null
6878
7071
  ]
6879
- }), /* @__PURE__ */ Q(rc, {
7072
+ }), /* @__PURE__ */ Q(kc, {
6880
7073
  label: "Reply",
6881
7074
  placeholder: "Write a reply…",
6882
7075
  submitLabel: "Reply",
@@ -6886,7 +7079,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6886
7079
  onSubmit: g,
6887
7080
  members: d
6888
7081
  })]
6889
- }) : /* @__PURE__ */ Q(Os, {
7082
+ }) : /* @__PURE__ */ Q(qs, {
6890
7083
  mode: n,
6891
7084
  isPending: c,
6892
7085
  isConnecting: a,
@@ -6899,7 +7092,7 @@ function wc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6899
7092
  ]
6900
7093
  });
6901
7094
  }
6902
- function Tc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pickerRef: i, onPickerClick: a, onPickerSelect: o }) {
7095
+ function Zc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pickerRef: i, onPickerClick: a, onPickerSelect: o }) {
6903
7096
  return /* @__PURE__ */ Q("div", {
6904
7097
  class: Z("markup-reaction-picker-wrap", t && "is-open", t && n === "up" && "is-up", r && "is-side"),
6905
7098
  ref: i,
@@ -6909,11 +7102,11 @@ function Tc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
6909
7102
  title: "Add reaction",
6910
7103
  "aria-label": "Add reaction",
6911
7104
  onClick: a,
6912
- children: /* @__PURE__ */ Q(as, { size: 16 })
7105
+ children: /* @__PURE__ */ Q(ws, { size: 16 })
6913
7106
  }), t ? /* @__PURE__ */ Q("div", {
6914
7107
  class: "markup-reaction-picker",
6915
7108
  role: "menu",
6916
- children: Sc.map((t) => /* @__PURE__ */ Q("button", {
7109
+ children: Jc.map((t) => /* @__PURE__ */ Q("button", {
6917
7110
  type: "button",
6918
7111
  role: "menuitem",
6919
7112
  class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
@@ -6923,11 +7116,11 @@ function Tc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
6923
7116
  }) : null]
6924
7117
  });
6925
7118
  }
6926
- function Ec({ comment: e, isResolved: t, onToggle: n }) {
7119
+ function Qc({ comment: e, isResolved: t, onToggle: n }) {
6927
7120
  return /* @__PURE__ */ Q("div", {
6928
7121
  class: "markup-reactions",
6929
7122
  children: e.reactions.map((e) => {
6930
- let r = Dc(e.reactors, e.mine, e.count, e.emoji);
7123
+ let r = $c(e.reactors, e.mine, e.count, e.emoji);
6931
7124
  return /* @__PURE__ */ Q("button", {
6932
7125
  type: "button",
6933
7126
  class: Z("markup-reaction-chip", e.mine && "is-mine"),
@@ -6948,14 +7141,14 @@ function Ec({ comment: e, isResolved: t, onToggle: n }) {
6948
7141
  })
6949
7142
  });
6950
7143
  }
6951
- function Dc(e, t, n, r) {
7144
+ function $c(e, t, n, r) {
6952
7145
  let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
6953
7146
  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}`;
6954
7147
  }
6955
- function Oc(e, t, n) {
7148
+ function el(e, t, n) {
6956
7149
  return Math.max(t, Math.min(n, e));
6957
7150
  }
6958
- function kc({ name: e, image: t, tone: n }) {
7151
+ function tl({ name: e, image: t, tone: n }) {
6959
7152
  let [r, i] = z(null);
6960
7153
  return /* @__PURE__ */ Q("span", {
6961
7154
  class: "markup-comment-avatar",
@@ -6971,11 +7164,11 @@ function kc({ name: e, image: t, tone: n }) {
6971
7164
  onError: () => i(t)
6972
7165
  }) : /* @__PURE__ */ Q("span", {
6973
7166
  class: "markup-avatar-initials",
6974
- children: Ac(e)
7167
+ children: nl(e)
6975
7168
  })
6976
7169
  });
6977
7170
  }
6978
- function Ac(e) {
7171
+ function nl(e) {
6979
7172
  let t = e.trim();
6980
7173
  if (!t) return "??";
6981
7174
  let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
@@ -6983,12 +7176,12 @@ function Ac(e) {
6983
7176
  let i = n[n.length - 1] ?? "";
6984
7177
  return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
6985
7178
  }
6986
- function jc(e) {
7179
+ function rl(e) {
6987
7180
  let t = 0;
6988
7181
  for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
6989
7182
  return Math.abs(t) % 5 + 1;
6990
7183
  }
6991
- function Mc(e) {
7184
+ function il(e) {
6992
7185
  let t = Date.now() - e, n = Math.floor(t / 1e3);
6993
7186
  if (n < 60) return "just now";
6994
7187
  let r = Math.floor(n / 60);
@@ -7005,7 +7198,7 @@ function Mc(e) {
7005
7198
  year: "numeric"
7006
7199
  });
7007
7200
  }
7008
- function Nc(e) {
7201
+ function al(e) {
7009
7202
  return new Date(e).toLocaleDateString([], {
7010
7203
  month: "long",
7011
7204
  day: "numeric",
@@ -7016,7 +7209,7 @@ function Nc(e) {
7016
7209
  }
7017
7210
  //#endregion
7018
7211
  //#region src/runtime/ui/toolbar.tsx
7019
- function Pc({ 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 }) {
7212
+ function ol({ 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 }) {
7020
7213
  let f = V(0);
7021
7214
  i > 0 && (f.current = i);
7022
7215
  let p = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
@@ -7040,7 +7233,7 @@ function Pc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7040
7233
  title: e ? "Cancel placing markup" : "Leave a markup",
7041
7234
  "aria-pressed": e,
7042
7235
  onClick: m,
7043
- children: Q(e ? $o : os, { size: 16 })
7236
+ children: Q(e ? vs : Ts, { size: 16 })
7044
7237
  }),
7045
7238
  a ? /* @__PURE__ */ Q("button", {
7046
7239
  type: "button",
@@ -7052,7 +7245,7 @@ function Pc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7052
7245
  onClick: (e) => {
7053
7246
  e.preventDefault(), e.stopPropagation(), o?.();
7054
7247
  },
7055
- children: [/* @__PURE__ */ Q(ss, { size: 16 }), /* @__PURE__ */ Q("span", {
7248
+ children: [/* @__PURE__ */ Q(Es, { size: 16 }), /* @__PURE__ */ Q("span", {
7056
7249
  class: "markup-tb-badge",
7057
7250
  "data-unread": i > 0 ? "true" : "false",
7058
7251
  "aria-hidden": "true",
@@ -7072,7 +7265,7 @@ function Pc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7072
7265
  onClick: (e) => {
7073
7266
  e.preventDefault(), e.stopPropagation(), l();
7074
7267
  },
7075
- children: Q(c ? cs : ls, { size: 16 })
7268
+ children: Q(c ? Ds : Os, { size: 16 })
7076
7269
  })] }) : null,
7077
7270
  u || d ? /* @__PURE__ */ Q("div", {
7078
7271
  class: "markup-tb-sep",
@@ -7086,14 +7279,14 @@ function Pc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7086
7279
  "data-kind": "overflow",
7087
7280
  "aria-label": "More options",
7088
7281
  disabled: !0,
7089
- children: /* @__PURE__ */ Q(us, { size: 16 })
7282
+ children: /* @__PURE__ */ Q(ks, { size: 16 })
7090
7283
  })
7091
7284
  ]
7092
7285
  });
7093
7286
  }
7094
7287
  //#endregion
7095
7288
  //#region src/runtime/ui/app.tsx
7096
- function Fc(e) {
7289
+ function sl(e) {
7097
7290
  let t = {
7098
7291
  clientId: `markup_user_${e.identity.id}`,
7099
7292
  name: e.identity.name,
@@ -7119,17 +7312,14 @@ function Fc(e) {
7119
7312
  } : {}
7120
7313
  };
7121
7314
  }
7122
- function Ic() {
7315
+ function cl() {
7123
7316
  let e = document.activeElement;
7124
7317
  for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
7125
7318
  if (!e) return !1;
7126
7319
  let t = e.tagName;
7127
7320
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
7128
7321
  }
7129
- function Lc() {
7130
- return window.location.host + window.location.pathname;
7131
- }
7132
- var Rc = Ur({
7322
+ var ll = Ur({
7133
7323
  visible: {
7134
7324
  "hide-with-toast": () => ({ kind: "hidden-with-toast" }),
7135
7325
  toggle: () => ({ kind: "hidden" })
@@ -7140,26 +7330,26 @@ var Rc = Ur({
7140
7330
  },
7141
7331
  hidden: { toggle: () => ({ kind: "visible" }) }
7142
7332
  });
7143
- function zc(e) {
7333
+ function ul(e) {
7144
7334
  return $i(e), e;
7145
7335
  }
7146
- var Bc = Ur({
7336
+ var dl = Ur({
7147
7337
  unresolved: {
7148
- "mint-success": (e, t) => zc({
7338
+ "mint-success": (e, t) => ul({
7149
7339
  kind: "anon",
7150
7340
  identity: t.identity
7151
7341
  }),
7152
- "signed-in": (e, t) => zc({
7342
+ "signed-in": (e, t) => ul({
7153
7343
  kind: "verified",
7154
7344
  identity: t.identity
7155
7345
  })
7156
7346
  },
7157
7347
  anon: {
7158
- "signed-in": (e, t) => zc({
7348
+ "signed-in": (e, t) => ul({
7159
7349
  kind: "verified",
7160
7350
  identity: t.identity
7161
7351
  }),
7162
- "author-set": (e, t) => zc({
7352
+ "author-set": (e, t) => ul({
7163
7353
  kind: "anon",
7164
7354
  identity: {
7165
7355
  ...e.identity,
@@ -7167,35 +7357,35 @@ var Bc = Ur({
7167
7357
  email: t.email
7168
7358
  }
7169
7359
  }),
7170
- "forget-me": () => zc({ kind: "unresolved" })
7360
+ "forget-me": () => ul({ kind: "unresolved" })
7171
7361
  },
7172
7362
  verified: {
7173
- "signed-in": (e, t) => zc({
7363
+ "signed-in": (e, t) => ul({
7174
7364
  kind: "verified",
7175
7365
  identity: t.identity
7176
7366
  }),
7177
- unauthorized: (e) => zc({
7367
+ unauthorized: (e) => ul({
7178
7368
  kind: "recovering",
7179
7369
  preserved: {
7180
7370
  name: e.identity.name,
7181
7371
  email: e.identity.email
7182
7372
  }
7183
7373
  }),
7184
- "signed-out": () => zc({ kind: "unresolved" })
7374
+ "signed-out": () => ul({ kind: "unresolved" })
7185
7375
  },
7186
7376
  recovering: {
7187
- "mint-success": (e, t) => zc({
7377
+ "mint-success": (e, t) => ul({
7188
7378
  kind: "anon",
7189
7379
  identity: t.identity
7190
7380
  }),
7191
- "signed-in": (e, t) => zc({
7381
+ "signed-in": (e, t) => ul({
7192
7382
  kind: "verified",
7193
7383
  identity: t.identity
7194
7384
  })
7195
7385
  }
7196
7386
  });
7197
- function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
7198
- let [a, o] = z(Lc), [s, c] = z([]), [l, u] = z(!1), d = at(() => Qi(), []), [f, p] = Wr(Bc, d.state), [m, h] = z(null);
7387
+ function fl({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
7388
+ let [a, o] = z(fa), [s, c] = z([]), [l, u] = z(!1), d = at(() => Qi(), []), [f, p] = Wr(dl, d.state), [m, h] = z(null);
7199
7389
  B(() => {
7200
7390
  let n = !1;
7201
7391
  return Ri(e, t).then((e) => {
@@ -7205,7 +7395,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7205
7395
  };
7206
7396
  }, [e, t]);
7207
7397
  let [g, _] = z(n), [v, y] = z(!0), [b, x] = z(!0), [S, C] = z(!1), [w, T] = z(null), E = H(() => T(null), []), D = V(f);
7208
- D.current = f, Yo(f, e, t, (e) => p({
7398
+ D.current = f, ms(f, e, t, (e) => p({
7209
7399
  type: "signed-in",
7210
7400
  identity: e
7211
7401
  }), () => p({ type: "unauthorized" }));
@@ -7251,18 +7441,18 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7251
7441
  }).finally(() => {
7252
7442
  ae(!1);
7253
7443
  });
7254
- }, [O]), de = Zr(), fe = Zr(), pe = Zr(), me = Zr(), he = Zr(), { run: N, reset: P } = de, { run: ge } = fe, { run: _e, reset: ve } = pe, { run: ye } = me, { run: be } = he, Se = he.isPending, Ce = de.isPending, we = de.error ?? fe.error ?? pe.error, [Te, Ee] = Wr(Rc, { kind: "visible" }), De = Te.kind !== "visible", [Oe, ke] = z(0), Ae = V(null), je = ta(f), Me = f.kind === "verified", F = f.kind === "unresolved" || f.kind === "recovering", Ne = ea(f), [Pe, I] = z(Ni), [Fe, Ie] = z(null);
7444
+ }, [O]), de = Zr(), fe = Zr(), pe = Zr(), me = Zr(), he = Zr(), { run: N, reset: P } = de, { run: ge } = fe, { run: _e, reset: ve } = pe, { run: ye } = me, { run: be } = he, Se = he.isPending, Ce = de.isPending, we = de.error ?? fe.error ?? pe.error, [Te, Ee] = Wr(ll, { kind: "visible" }), De = Te.kind !== "visible", [Oe, ke] = z(0), Ae = V(null), je = ta(f), Me = f.kind === "verified", F = f.kind === "unresolved" || f.kind === "recovering", Ne = ea(f), [Pe, Fe] = z(Ni), [Ie, Le] = z(null);
7255
7445
  B(() => {
7256
- Ie(null);
7446
+ Le(null);
7257
7447
  }, [f.kind, Ne]);
7258
- let Le = Pi(Pe, f.kind), Re = Fi({
7448
+ let Re = Pi(Pe, f.kind), ze = Fi({
7259
7449
  access: Pe,
7260
7450
  identityKind: f.kind,
7261
7451
  hasAuthorName: je != null,
7262
- refusal: Fe
7263
- }), ze = H((e) => {
7452
+ refusal: Ie
7453
+ }), Be = H((e) => {
7264
7454
  let t = Ii(e);
7265
- throw t && Ie(t), e;
7455
+ throw t && Le(t), e;
7266
7456
  }, []);
7267
7457
  B(() => {
7268
7458
  if (f.kind !== "unresolved" && f.kind !== "recovering") return;
@@ -7293,17 +7483,17 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7293
7483
  p,
7294
7484
  d
7295
7485
  ]);
7296
- let Be = Go(O), [Ve, He] = z(null);
7486
+ let Ve = us(O), [He, Ue] = z(null);
7297
7487
  B(() => {
7298
7488
  let t = new Hr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
7299
- return He(t), () => {
7300
- t.close(), He((e) => e === t ? null : e);
7489
+ return Ue(t), () => {
7490
+ t.close(), Ue((e) => e === t ? null : e);
7301
7491
  };
7302
7492
  }, [e]);
7303
- let Ue = V(!1);
7493
+ let We = V(!1);
7304
7494
  B(() => {
7305
- if (!(!Ve || !Be)) return P(), ve(), Ve.onUpdate(Nn("widget/queries:subscribeThreadsForRoute"), {
7306
- subscriptionToken: Be,
7495
+ if (!(!He || !Ve)) return P(), ve(), He.onUpdate(Nn("widget/queries:subscribeThreadsForRoute"), {
7496
+ subscriptionToken: Ve,
7307
7497
  route: a,
7308
7498
  viewerClientId: Ne,
7309
7499
  includeResolved: S
@@ -7311,42 +7501,38 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7311
7501
  e !== void 0 && (c(e), u(!0));
7312
7502
  });
7313
7503
  }, [
7504
+ He,
7314
7505
  Ve,
7315
- Be,
7316
7506
  a,
7317
7507
  Ne,
7318
7508
  S,
7319
7509
  P,
7320
7510
  ve
7321
7511
  ]), B(() => {
7322
- if (!(!Ve || !Be)) return Ve.onUpdate(Nn("widget/queries:subscribeProjectSettings"), { subscriptionToken: Be }, (e) => {
7512
+ if (!(!He || !Ve)) return He.onUpdate(Nn("widget/queries:subscribeProjectSettings"), { subscriptionToken: Ve }, (e) => {
7323
7513
  let t = e?.commentAccess;
7324
- I(t === "members" ? "members" : Ni);
7514
+ Fe(t === "members" ? "members" : Ni);
7325
7515
  });
7326
- }, [Ve, Be]), B(() => {
7516
+ }, [He, Ve]), B(() => {
7327
7517
  if (f.kind !== "verified") {
7328
7518
  M(0);
7329
7519
  return;
7330
7520
  }
7331
- if (!(!Ve || !Be)) return Ve.onUpdate(Nn("widget/queries:subscribeUnreadCountForProject"), { subscriptionToken: Be }, (e) => {
7521
+ if (!(!He || !Ve)) return He.onUpdate(Nn("widget/queries:subscribeUnreadCountForProject"), { subscriptionToken: Ve }, (e) => {
7332
7522
  e !== void 0 && M(e.count);
7333
7523
  });
7334
7524
  }, [
7525
+ He,
7335
7526
  Ve,
7336
- Be,
7337
7527
  f.kind
7338
7528
  ]), B(() => {
7339
- if (Ue.current || !l) return;
7340
- let e = window.location.hash.match(/^#markup-thread=(.+)$/);
7341
- if (e) {
7342
- let t = decodeURIComponent(e[1] ?? "");
7343
- s.find((e) => e._id === t) && A({
7344
- kind: "thread",
7345
- threadId: t
7346
- }), history.replaceState(null, "", window.location.pathname + window.location.search);
7347
- }
7348
- Ue.current = !0;
7349
- }, [s, l]), B(() => Gi(() => o(Lc())), []), B(() => {
7529
+ if (We.current || !l) return;
7530
+ let e = pa();
7531
+ e !== null && (s.find((t) => t._id === e) && A({
7532
+ kind: "thread",
7533
+ threadId: e
7534
+ }), ha()), We.current = !0;
7535
+ }, [s, l]), B(() => Gi(() => o(fa())), []), B(() => {
7350
7536
  function e(e) {
7351
7537
  e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ee({ type: "toggle" })));
7352
7538
  }
@@ -7373,20 +7559,20 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7373
7559
  window.removeEventListener("scroll", t, { capture: !0 }), window.removeEventListener("resize", t), n.disconnect(), e != null && cancelAnimationFrame(e);
7374
7560
  };
7375
7561
  }, []);
7376
- let We = H(() => {
7562
+ let Ge = H(() => {
7377
7563
  P(), ve(), xe("comment_started"), A({ kind: "placing" });
7378
7564
  }, [P, ve]);
7379
7565
  B(() => {
7380
7566
  function e(e) {
7381
- e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || k.kind === "idle" && (De || Ic() || (e.preventDefault(), We())));
7567
+ e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || k.kind === "idle" && (De || cl() || (e.preventDefault(), Ge())));
7382
7568
  }
7383
7569
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
7384
7570
  }, [
7385
7571
  k.kind,
7386
7572
  De,
7387
- We
7573
+ Ge
7388
7574
  ]);
7389
- let Ge = H(() => {
7575
+ let I = H(() => {
7390
7576
  A({ kind: "idle" }), P(), ve();
7391
7577
  }, [P, ve]), L = V(0), Ke = H((e, t, n) => {
7392
7578
  let i = t + window.scrollX, a = n + window.scrollY, o = ++L.current;
@@ -7421,7 +7607,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7421
7607
  strictScrub: r?.strictScrub,
7422
7608
  redactSelector: r?.redactSelector
7423
7609
  };
7424
- Io(s, {
7610
+ ts(s, {
7425
7611
  x: t,
7426
7612
  y: n
7427
7613
  }, c).then((e) => {
@@ -7442,7 +7628,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7442
7628
  });
7443
7629
  }, [p]), Je = fe.isPending, Ye = H(async () => {
7444
7630
  xe("sign_in_started"), await ge(async () => {
7445
- let n = Fc(await sa({
7631
+ let n = sl(await sa({
7446
7632
  apiUrl: e,
7447
7633
  apiKey: t,
7448
7634
  useCookies: m === !0
@@ -7465,7 +7651,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7465
7651
  n && await N(async () => {
7466
7652
  let r;
7467
7653
  if (t && k.screenshot) {
7468
- let { uploadUrl: e } = await O.getScreenshotUploadUrl().catch(ze), t;
7654
+ let { uploadUrl: e } = await O.getScreenshotUploadUrl().catch(Be), t;
7469
7655
  try {
7470
7656
  t = await fetch(e, {
7471
7657
  method: "POST",
@@ -7497,7 +7683,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7497
7683
  body: e,
7498
7684
  mentions: i.length > 0 ? i : void 0,
7499
7685
  screenshotStorageId: r
7500
- }).catch(ze);
7686
+ }).catch(Be);
7501
7687
  c((e) => [...e, o.thread]), xe("comment_submitted", {
7502
7688
  hasScreenshot: r != null,
7503
7689
  hasMentions: i.length > 0
@@ -7510,7 +7696,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7510
7696
  O,
7511
7697
  f,
7512
7698
  k,
7513
- ze,
7699
+ Be,
7514
7700
  a,
7515
7701
  N
7516
7702
  ]), Xe = H(async () => {
@@ -7543,8 +7729,8 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7543
7729
  threadId: e.threadId
7544
7730
  });
7545
7731
  else {
7546
- let t = qi(e.threadUrl, window.location.href);
7547
- t && (t.hash = `markup-thread=${e.threadId}`, window.location.href = t.toString());
7732
+ let t = _a(e.threadUrl, e.threadId);
7733
+ t && (window.location.href = t);
7548
7734
  }
7549
7735
  }, [O, s]), $e = H(() => {
7550
7736
  le(!0), M(0), re((e) => e.map((e) => e.readAt == null ? {
@@ -7562,14 +7748,14 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7562
7748
  authorName: t.name,
7563
7749
  authorEmail: t.email,
7564
7750
  mentions: r.length > 0 ? r : void 0
7565
- }).catch(ze);
7751
+ }).catch(Be);
7566
7752
  c((e) => e.map((e) => e._id === n ? i.thread : e)), xe("reply_submitted", { hasMentions: r.length > 0 });
7567
7753
  });
7568
7754
  }, [
7569
7755
  O,
7570
7756
  f,
7571
7757
  k,
7572
- ze,
7758
+ Be,
7573
7759
  N
7574
7760
  ]), tt = H(async (e, t) => {
7575
7761
  if (k.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
@@ -7600,8 +7786,8 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7600
7786
  N
7601
7787
  ]), rt = H(async (e, t) => {
7602
7788
  if (k.kind !== "thread") return;
7603
- if (!Le) {
7604
- Ie("sign_in_required");
7789
+ if (!Re) {
7790
+ Le("sign_in_required");
7605
7791
  return;
7606
7792
  }
7607
7793
  let n = na(f);
@@ -7611,15 +7797,15 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7611
7797
  let i = await O.toggleReaction(e, {
7612
7798
  emoji: t,
7613
7799
  authorName: n.name
7614
- }).catch(ze);
7800
+ }).catch(Be);
7615
7801
  c((e) => e.map((e) => e._id === r ? i.thread : e)), xe("reaction_added");
7616
7802
  });
7617
7803
  }, [
7618
7804
  O,
7619
- Le,
7805
+ Re,
7620
7806
  f,
7621
7807
  k,
7622
- ze,
7808
+ Be,
7623
7809
  _e
7624
7810
  ]), [it, ot] = z(!1), st = H(async () => {
7625
7811
  await ye(async () => {
@@ -7697,11 +7883,11 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7697
7883
  n.disconnect(), e != null && cancelAnimationFrame(e);
7698
7884
  };
7699
7885
  }, [mt]), B(() => {
7700
- k.kind === "thread" && dt == null && Ge();
7886
+ k.kind === "thread" && dt == null && I();
7701
7887
  }, [
7702
7888
  k,
7703
7889
  dt,
7704
- Ge
7890
+ I
7705
7891
  ]), /* @__PURE__ */ Q("div", {
7706
7892
  class: "markup-root",
7707
7893
  ref: Ae,
@@ -7710,7 +7896,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7710
7896
  class: "markup-pins-layer",
7711
7897
  children: [!De && v ? U.map(({ thread: e, point: t }) => {
7712
7898
  let n = k.kind === "thread" && k.threadId === e._id, r = e.comments.reduce((e, t) => e + +!t.deleted, 0);
7713
- return /* @__PURE__ */ Q(hc, {
7899
+ return /* @__PURE__ */ Q(Vc, {
7714
7900
  pageX: t.pageX,
7715
7901
  pageY: t.pageY,
7716
7902
  count: r,
@@ -7724,19 +7910,19 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7724
7910
  });
7725
7911
  }
7726
7912
  }, e._id);
7727
- }) : null, k.kind === "composing-new" ? /* @__PURE__ */ Q(gc, {
7913
+ }) : null, k.kind === "composing-new" ? /* @__PURE__ */ Q(Hc, {
7728
7914
  pageX: k.pageX,
7729
7915
  pageY: k.pageY
7730
7916
  }) : null]
7731
7917
  }),
7732
- k.kind === "placing" ? /* @__PURE__ */ Q(_c, {
7918
+ k.kind === "placing" ? /* @__PURE__ */ Q(Uc, {
7733
7919
  onPlace: Ke,
7734
- onCancel: Ge
7920
+ onCancel: I
7735
7921
  }) : null,
7736
- k.kind === "thread" && dt ? /* @__PURE__ */ Q(wc, {
7922
+ k.kind === "thread" && dt ? /* @__PURE__ */ Q(Xc, {
7737
7923
  thread: dt,
7738
7924
  authorName: je,
7739
- authorPromptMode: Re,
7925
+ authorPromptMode: ze,
7740
7926
  currentClientId: Ne ?? null,
7741
7927
  isVerified: Me,
7742
7928
  isIdentityResolving: F,
@@ -7749,7 +7935,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7749
7935
  onAuthor: qe,
7750
7936
  onSignIn: Ye,
7751
7937
  onSignOut: ut,
7752
- onClose: Ge,
7938
+ onClose: I,
7753
7939
  onReply: et,
7754
7940
  onEditComment: tt,
7755
7941
  onDeleteComment: nt,
@@ -7757,11 +7943,11 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7757
7943
  onDelete: Xe,
7758
7944
  onResolve: Ze
7759
7945
  }, dt._id) : null,
7760
- k.kind === "composing-new" ? /* @__PURE__ */ Q(ac, {
7946
+ k.kind === "composing-new" ? /* @__PURE__ */ Q(jc, {
7761
7947
  pageX: k.pageX,
7762
7948
  pageY: k.pageY,
7763
7949
  authorName: je,
7764
- authorPromptMode: Re,
7950
+ authorPromptMode: ze,
7765
7951
  isVerified: Me,
7766
7952
  isIdentityResolving: F,
7767
7953
  isSigningIn: Je,
@@ -7777,11 +7963,11 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7777
7963
  onSignIn: Ye,
7778
7964
  onSignOut: ut,
7779
7965
  onSubmit: R,
7780
- onClose: Ge
7966
+ onClose: I
7781
7967
  }) : null,
7782
- !De || k.kind === "placing" || k.kind === "composing-new" ? /* @__PURE__ */ Q(Pc, {
7968
+ !De || k.kind === "placing" || k.kind === "composing-new" ? /* @__PURE__ */ Q(ol, {
7783
7969
  isActive: k.kind === "placing",
7784
- onToggle: () => k.kind === "placing" ? Ge() : We(),
7970
+ onToggle: () => k.kind === "placing" ? I() : Ge(),
7785
7971
  onHide: () => Ee({ type: "hide-with-toast" }),
7786
7972
  position: g,
7787
7973
  showInbox: Me,
@@ -7793,7 +7979,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7793
7979
  },
7794
7980
  pinsVisible: v,
7795
7981
  onTogglePins: () => y((e) => !e),
7796
- identityButton: /* @__PURE__ */ Q(xs, {
7982
+ identityButton: /* @__PURE__ */ Q(Bs, {
7797
7983
  identity: f,
7798
7984
  position: g,
7799
7985
  isSigningIn: Je,
@@ -7804,7 +7990,7 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7804
7990
  onSignOut: ut,
7805
7991
  onForgetMe: st
7806
7992
  }),
7807
- overflowButton: /* @__PURE__ */ Q(uc, {
7993
+ overflowButton: /* @__PURE__ */ Q(Ic, {
7808
7994
  position: g,
7809
7995
  onSetPosition: _,
7810
7996
  autoCapture: b && r?.enabled !== !1,
@@ -7815,17 +8001,17 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7815
8001
  onOpenPrivacy: () => T("privacy"),
7816
8002
  onOpenShortcuts: () => T("shortcuts"),
7817
8003
  onHideForSession: () => Ee({ type: "hide-with-toast" }),
7818
- version: "1.22.0",
8004
+ version: "1.24.0",
7819
8005
  dashboardUrl: i
7820
8006
  })
7821
8007
  }) : null,
7822
- w === "inbox" && Me ? /* @__PURE__ */ Q(mc, {
8008
+ w === "inbox" && Me ? /* @__PURE__ */ Q(Bc, {
7823
8009
  kind: "inbox",
7824
8010
  label: "Inbox",
7825
8011
  position: g,
7826
8012
  ignoreToolbarKind: "inbox",
7827
8013
  onClose: E,
7828
- children: /* @__PURE__ */ Q(sc, {
8014
+ children: /* @__PURE__ */ Q(Nc, {
7829
8015
  items: ne,
7830
8016
  isLoading: ie,
7831
8017
  error: oe,
@@ -7837,12 +8023,12 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7837
8023
  onMarkAllRead: $e
7838
8024
  })
7839
8025
  }) : null,
7840
- w === "privacy" ? /* @__PURE__ */ Q(mc, {
8026
+ w === "privacy" ? /* @__PURE__ */ Q(Bc, {
7841
8027
  kind: "privacy",
7842
8028
  label: "Privacy and data",
7843
8029
  position: g,
7844
8030
  onClose: E,
7845
- children: /* @__PURE__ */ Q(yc, {
8031
+ children: /* @__PURE__ */ Q(Gc, {
7846
8032
  identity: f,
7847
8033
  apiUrl: e,
7848
8034
  commentAccess: Pe,
@@ -7854,21 +8040,21 @@ function Vc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7854
8040
  onClose: E
7855
8041
  })
7856
8042
  }) : null,
7857
- w === "shortcuts" ? /* @__PURE__ */ Q(mc, {
8043
+ w === "shortcuts" ? /* @__PURE__ */ Q(Bc, {
7858
8044
  kind: "shortcuts",
7859
8045
  label: "Keyboard shortcuts",
7860
8046
  position: g,
7861
8047
  onClose: E,
7862
- children: /* @__PURE__ */ Q(xc, { onClose: E })
8048
+ children: /* @__PURE__ */ Q(qc, { onClose: E })
7863
8049
  }) : null,
7864
- Te.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(Hc, { position: g }) : null,
7865
- it ? /* @__PURE__ */ Q(Uc, { position: g }) : null,
7866
- ct ? /* @__PURE__ */ Q(Wc, { position: g }) : null
8050
+ Te.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(pl, { position: g }) : null,
8051
+ it ? /* @__PURE__ */ Q(ml, { position: g }) : null,
8052
+ ct ? /* @__PURE__ */ Q(hl, { position: g }) : null
7867
8053
  ]
7868
8054
  });
7869
8055
  }
7870
- function Hc({ position: e }) {
7871
- let { mod: t } = Xo();
8056
+ function pl({ position: e }) {
8057
+ let { mod: t } = hs();
7872
8058
  return /* @__PURE__ */ Q("div", {
7873
8059
  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"),
7874
8060
  role: "status",
@@ -7887,7 +8073,7 @@ function Hc({ position: e }) {
7887
8073
  ]
7888
8074
  });
7889
8075
  }
7890
- function Uc({ position: e }) {
8076
+ function ml({ position: e }) {
7891
8077
  return /* @__PURE__ */ Q("div", {
7892
8078
  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"),
7893
8079
  role: "status",
@@ -7895,7 +8081,7 @@ function Uc({ position: e }) {
7895
8081
  children: "Forgotten on this site — your name and email were cleared."
7896
8082
  });
7897
8083
  }
7898
- function Wc({ position: e }) {
8084
+ function hl({ position: e }) {
7899
8085
  return /* @__PURE__ */ Q("div", {
7900
8086
  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"),
7901
8087
  role: "status",
@@ -7905,52 +8091,52 @@ function Wc({ position: e }) {
7905
8091
  }
7906
8092
  //#endregion
7907
8093
  //#region src/runtime/mount.tsx
7908
- function Gc(e, t) {
7909
- e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", ze(e, t.theme ?? "auto");
7910
- let n = We(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
8094
+ function gl(e, t) {
8095
+ e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", Be(e, t.theme ?? "auto");
8096
+ let n = Ge(), r = e.attachShadow({ mode: "open" }), i = document.createElement("style");
7911
8097
  i.textContent = fe, r.appendChild(i);
7912
8098
  let a = document.createElement("div");
7913
8099
  a.className = "markup-shadow-root", r.appendChild(a), Me({
7914
8100
  apiUrl: t.apiUrl,
7915
8101
  apiKey: t.apiKey,
7916
- widgetVersion: "1.22.0"
8102
+ widgetVersion: "1.24.0"
7917
8103
  }), be(t.analytics === !1 ? null : {
7918
8104
  apiUrl: t.apiUrl,
7919
8105
  apiKey: t.apiKey,
7920
- widgetVersion: "1.22.0"
8106
+ widgetVersion: "1.24.0"
7921
8107
  }), xe("widget_loaded");
7922
8108
  let { theme: o, analytics: s, ...c } = t;
7923
8109
  return de(/* @__PURE__ */ Q(we, {
7924
8110
  onError: (e) => F(e, { context: "render" }),
7925
- children: /* @__PURE__ */ Q(Vc, { ...c })
8111
+ children: /* @__PURE__ */ Q(fl, { ...c })
7926
8112
  }), a), () => {
7927
8113
  n(), Me(null), be(null), de(null, a);
7928
8114
  };
7929
8115
  }
7930
8116
  //#endregion
7931
8117
  //#region src/widget.ts
7932
- var Kc = null, qc = null, Jc = null, Yc = !1;
7933
- function Xc(e) {
8118
+ var _l = null, vl = null, yl = null, bl = !1;
8119
+ function xl(e) {
7934
8120
  if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
7935
- e.fab != null && !Yc && (Yc = !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.")), Zc();
8121
+ e.fab != null && !bl && (bl = !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.")), Sl();
7936
8122
  let t = () => {
7937
- if (Jc = null, !document.body) return;
8123
+ if (yl = null, !document.body) return;
7938
8124
  let t = document.createElement("div");
7939
- t.id = "markup-widget", document.body.appendChild(t), qc = t, Kc = Gc(t, e);
8125
+ t.id = "markup-widget", document.body.appendChild(t), vl = t, _l = gl(t, e);
7940
8126
  };
7941
8127
  if (document.readyState === "loading" || !document.body) {
7942
8128
  let e = () => t();
7943
- Jc = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8129
+ yl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
7944
8130
  } else t();
7945
- return Zc;
8131
+ return Sl;
7946
8132
  }
7947
- function Zc() {
7948
- Jc &&= (Jc(), null), Kc &&= (Kc(), null), qc?.parentNode && qc.parentNode.removeChild(qc), qc = null;
8133
+ function Sl() {
8134
+ yl &&= (yl(), null), _l &&= (_l(), null), vl?.parentNode && vl.parentNode.removeChild(vl), vl = null;
7949
8135
  }
7950
8136
  if (typeof document < "u") {
7951
8137
  let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
7952
8138
  if (t && n) {
7953
- let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => Xc({
8139
+ let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => xl({
7954
8140
  apiUrl: t,
7955
8141
  apiKey: n,
7956
8142
  position: r,
@@ -7963,6 +8149,6 @@ if (typeof document < "u") {
7963
8149
  }
7964
8150
  }
7965
8151
  //#endregion
7966
- export { Zc as destroy, Xc as init };
8152
+ export { Sl as destroy, xl as init };
7967
8153
 
7968
8154
  //# sourceMappingURL=widget.js.map