@pixelmatters/markup 1.23.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;
@@ -4069,8 +4069,95 @@ async function Io(e, t = {}) {
4069
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
4070
  }
4071
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;
4090
+ }
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
+ };
4157
+ }
4158
+ //#endregion
4072
4159
  //#region src/runtime/screenshot.ts
4073
- var Lo = 2097152, Ro = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", zo = [
4160
+ var Ko = 2097152, qo = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", Jo = [
4074
4161
  {
4075
4162
  quality: .85,
4076
4163
  scale: 1
@@ -4087,8 +4174,8 @@ var Lo = 2097152, Ro = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAA
4087
4174
  quality: .6,
4088
4175
  scale: .5
4089
4176
  }
4090
- ], Bo = "background:currentColor!important;color:transparent!important;text-shadow:none!important;-webkit-text-fill-color:transparent!important", Vo = "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\"]";
4091
- function Ho(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) {
4092
4179
  let t = e.parentElement;
4093
4180
  for (; t;) {
4094
4181
  if (t.hasAttribute("data-markup-safe")) return !0;
@@ -4096,37 +4183,37 @@ function Ho(e) {
4096
4183
  }
4097
4184
  return !1;
4098
4185
  }
4099
- function Uo(e) {
4186
+ function Qo(e) {
4100
4187
  let t = /* @__PURE__ */ new Set(), n = [];
4101
4188
  function r(e) {
4102
4189
  t.has(e) || (t.add(e), n.push(e));
4103
4190
  }
4104
4191
  for (let e of document.querySelectorAll("[data-markup-private],[data-markup-redact]")) r(e);
4105
- for (let e of document.querySelectorAll(Vo)) Ho(e) || r(e);
4192
+ for (let e of document.querySelectorAll(Xo)) Zo(e) || r(e);
4106
4193
  if (e.redactSelector) try {
4107
- for (let t of document.querySelectorAll(e.redactSelector)) Ho(t) || r(t);
4194
+ for (let t of document.querySelectorAll(e.redactSelector)) Zo(t) || r(t);
4108
4195
  } catch (e) {
4109
4196
  F(e, { context: "screenshot-redact-selector" });
4110
4197
  }
4111
- if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Ho(e) || r(e);
4198
+ if (e.strictScrub) for (let e of document.querySelectorAll("input,select,textarea")) Zo(e) || r(e);
4112
4199
  return n;
4113
4200
  }
4114
- function Wo(e) {
4201
+ function $o(e) {
4115
4202
  let t = e.getAttribute("style");
4116
- return e.setAttribute("style", t ? `${t};${Bo}` : Bo), () => {
4203
+ return e.setAttribute("style", t ? `${t};${Yo}` : Yo), () => {
4117
4204
  t === null ? e.removeAttribute("style") : e.setAttribute("style", t);
4118
4205
  };
4119
4206
  }
4120
- function Go(e) {
4207
+ function es(e) {
4121
4208
  if (e.id) return `#${CSS.escape(e.id)}`;
4122
4209
  let t = e.tagName.toLowerCase(), n = e.getAttribute("type"), r = e.getAttribute("name");
4123
4210
  return n && r ? `${t}[type="${n}"][name="${r}"]` : n ? `${t}[type="${n}"]` : r ? `${t}[name="${r}"]` : t;
4124
4211
  }
4125
- async function Ko(e, t, n) {
4212
+ async function ts(e, t, n) {
4126
4213
  try {
4127
- let r = window.innerWidth, i = window.innerHeight, a = Math.min(window.devicePixelRatio, 2), o = n ? Uo(n) : [], s = o.map(Go), c = o.map(Wo), 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;
4128
4215
  try {
4129
- l = await Io(document.documentElement, {
4216
+ u = await Io(document.documentElement, {
4130
4217
  width: r,
4131
4218
  height: i,
4132
4219
  cacheBust: !0,
@@ -4135,7 +4222,7 @@ async function Ko(e, t, n) {
4135
4222
  filter(t) {
4136
4223
  return !(e && (t === e || e.contains(t)) || t instanceof Element && t.hasAttribute("data-markup-skip"));
4137
4224
  },
4138
- imagePlaceholder: Ro,
4225
+ imagePlaceholder: qo,
4139
4226
  onImageErrorHandler: () => {},
4140
4227
  style: {
4141
4228
  transform: `translateY(-${window.scrollY}px)`,
@@ -4143,45 +4230,46 @@ async function Ko(e, t, n) {
4143
4230
  }
4144
4231
  });
4145
4232
  } finally {
4146
- for (let e of c) e();
4233
+ for (let e of l) e();
4234
+ o();
4147
4235
  }
4148
4236
  if (t) {
4149
- let e = l.getContext("2d");
4150
- e && Xo(e, t.x, t.y, a);
4237
+ let e = u.getContext("2d");
4238
+ e && as(e, t.x, t.y, a);
4151
4239
  }
4152
- let u = await Yo(l);
4153
- return u ? {
4154
- blob: u,
4155
- redactedCount: s.length,
4156
- redactedSelectors: s
4240
+ let d = await is(u);
4241
+ return d ? {
4242
+ blob: d,
4243
+ redactedCount: c.length,
4244
+ redactedSelectors: c
4157
4245
  } : null;
4158
4246
  } catch (e) {
4159
4247
  return F(e, { context: "screenshot-capture" }), null;
4160
4248
  }
4161
4249
  }
4162
- function qo(e, t) {
4250
+ function ns(e, t) {
4163
4251
  return new Promise((n) => e.toBlob(n, "image/jpeg", t));
4164
4252
  }
4165
- function Jo(e, t) {
4253
+ function rs(e, t) {
4166
4254
  let n = document.createElement("canvas");
4167
4255
  n.width = Math.max(1, Math.round(e.width * t)), n.height = Math.max(1, Math.round(e.height * t));
4168
4256
  let r = n.getContext("2d");
4169
4257
  return r ? (r.imageSmoothingQuality = "high", r.drawImage(e, 0, 0, n.width, n.height), n) : null;
4170
4258
  }
4171
- async function Yo(e) {
4259
+ async function is(e) {
4172
4260
  let t = null;
4173
- for (let { quality: n, scale: r } of zo) {
4174
- let i = r === 1 ? e : Jo(e, r);
4261
+ for (let { quality: n, scale: r } of Jo) {
4262
+ let i = r === 1 ? e : rs(e, r);
4175
4263
  if (!i) continue;
4176
- let a = await qo(i, n);
4264
+ let a = await ns(i, n);
4177
4265
  if (a) {
4178
- if (a.size <= Lo) return a;
4266
+ if (a.size <= Ko) return a;
4179
4267
  t = t == null ? a.size : Math.min(t, a.size);
4180
4268
  }
4181
4269
  }
4182
- 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 ${Lo})`), { 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;
4183
4271
  }
4184
- function Xo(e, t, n, r) {
4272
+ function as(e, t, n, r) {
4185
4273
  let i = r, a = 28 * i, o = a / 2, s = t * i, c = n * i;
4186
4274
  e.save();
4187
4275
  let l = 2 * i;
@@ -4199,7 +4287,7 @@ function Xo(e, t, n, r) {
4199
4287
  }
4200
4288
  //#endregion
4201
4289
  //#region src/runtime/use-subscription-token.ts
4202
- var Zo = Ur({
4290
+ var os = Ur({
4203
4291
  idle: { issued: (e, t) => ({
4204
4292
  kind: "active",
4205
4293
  token: t.token,
@@ -4210,9 +4298,9 @@ var Zo = Ur({
4210
4298
  token: t.token,
4211
4299
  expiresAt: t.expiresAt
4212
4300
  }) }
4213
- }), Qo = 18e5, $o = 6e4, es = 6e4;
4214
- function ts(e) {
4215
- let [t, n] = Wr(Zo, { kind: "idle" });
4301
+ }), ss = 18e5, cs = 6e4, ls = 6e4;
4302
+ function us(e) {
4303
+ let [t, n] = Wr(os, { kind: "idle" });
4216
4304
  return B(() => {
4217
4305
  let t = !1, r = null;
4218
4306
  async function i() {
@@ -4224,11 +4312,11 @@ function ts(e) {
4224
4312
  token: a.token,
4225
4313
  expiresAt: a.expiresAt
4226
4314
  });
4227
- let o = Math.max($o, a.expiresAt - Date.now() - Qo);
4315
+ let o = Math.max(cs, a.expiresAt - Date.now() - ss);
4228
4316
  r = setTimeout(i, o);
4229
4317
  } catch (e) {
4230
4318
  if (t) return;
4231
- e?.name !== "TypeError" && F(e, { context: "subscription-token-refresh" }), r = setTimeout(i, es);
4319
+ e?.name !== "TypeError" && F(e, { context: "subscription-token-refresh" }), r = setTimeout(i, ls);
4232
4320
  }
4233
4321
  }
4234
4322
  return i(), () => {
@@ -4238,7 +4326,7 @@ function ts(e) {
4238
4326
  }
4239
4327
  //#endregion
4240
4328
  //#region src/runtime/refresh-token.ts
4241
- async function ns(e) {
4329
+ async function ds(e) {
4242
4330
  try {
4243
4331
  let t = {
4244
4332
  method: "POST",
@@ -4274,8 +4362,8 @@ async function ns(e) {
4274
4362
  }
4275
4363
  //#endregion
4276
4364
  //#region src/runtime/use-token-refresh.ts
4277
- var rs = 6e4, is = 500;
4278
- function as(e, t, n, r, i) {
4365
+ var fs = 6e4, ps = 500;
4366
+ function ms(e, t, n, r, i) {
4279
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;
4280
4368
  B(() => {
4281
4369
  if (!a || c == null || l == null || o === "localStorage" && s == null || o !== "cookies" && o !== "localStorage") return;
@@ -4284,8 +4372,8 @@ function as(e, t, n, r, i) {
4284
4372
  i();
4285
4373
  return;
4286
4374
  }
4287
- let d = Math.max(is, l - rs - u), f = new AbortController(), p = window.setTimeout(async () => {
4288
- let a = await ns({
4375
+ let d = Math.max(ps, l - fs - u), f = new AbortController(), p = window.setTimeout(async () => {
4376
+ let a = await ds({
4289
4377
  apiUrl: t,
4290
4378
  apiKey: n,
4291
4379
  mode: o,
@@ -4328,7 +4416,7 @@ function as(e, t, n, r, i) {
4328
4416
  function Z(...e) {
4329
4417
  return e.filter(Boolean).join(" ");
4330
4418
  }
4331
- function os() {
4419
+ function hs() {
4332
4420
  return typeof navigator < "u" && /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? {
4333
4421
  mod: "⌘",
4334
4422
  enter: "↵"
@@ -4339,7 +4427,7 @@ function os() {
4339
4427
  }
4340
4428
  //#endregion
4341
4429
  //#region ../../node_modules/.pnpm/preact@10.29.7/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
4342
- var ss = 0;
4430
+ var gs = 0;
4343
4431
  Array.isArray;
4344
4432
  function Q(e, n, r, i, a, o) {
4345
4433
  n ||= {};
@@ -4356,7 +4444,7 @@ function Q(e, n, r, i, a, o) {
4356
4444
  __e: null,
4357
4445
  __c: null,
4358
4446
  constructor: void 0,
4359
- __v: --ss,
4447
+ __v: --gs,
4360
4448
  __i: -1,
4361
4449
  __u: 0,
4362
4450
  __source: a,
@@ -4367,7 +4455,7 @@ function Q(e, n, r, i, a, o) {
4367
4455
  }
4368
4456
  //#endregion
4369
4457
  //#region src/runtime/ui/icons.tsx
4370
- function cs({ size: e = 16 }) {
4458
+ function _s({ size: e = 16 }) {
4371
4459
  return /* @__PURE__ */ Q("svg", {
4372
4460
  width: e,
4373
4461
  height: e,
@@ -4377,7 +4465,7 @@ function cs({ size: e = 16 }) {
4377
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" })
4378
4466
  });
4379
4467
  }
4380
- function ls({ size: e = 16 }) {
4468
+ function vs({ size: e = 16 }) {
4381
4469
  return /* @__PURE__ */ Q("svg", {
4382
4470
  width: e,
4383
4471
  height: e,
@@ -4386,7 +4474,7 @@ function ls({ size: e = 16 }) {
4386
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" })
4387
4475
  });
4388
4476
  }
4389
- function us({ size: e = 16 }) {
4477
+ function ys({ size: e = 16 }) {
4390
4478
  return /* @__PURE__ */ Q("svg", {
4391
4479
  width: e,
4392
4480
  height: e,
@@ -4396,7 +4484,7 @@ function us({ size: e = 16 }) {
4396
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" })
4397
4485
  });
4398
4486
  }
4399
- function ds({ size: e = 16 }) {
4487
+ function bs({ size: e = 16 }) {
4400
4488
  return /* @__PURE__ */ Q("svg", {
4401
4489
  width: e,
4402
4490
  height: e,
@@ -4405,7 +4493,7 @@ function ds({ size: e = 16 }) {
4405
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" })
4406
4494
  });
4407
4495
  }
4408
- function fs({ size: e = 16 }) {
4496
+ function xs({ size: e = 16 }) {
4409
4497
  return /* @__PURE__ */ Q("svg", {
4410
4498
  xmlns: "http://www.w3.org/2000/svg",
4411
4499
  width: e,
@@ -4415,7 +4503,7 @@ function fs({ size: e = 16 }) {
4415
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" })
4416
4504
  });
4417
4505
  }
4418
- function ps({ size: e = 16 }) {
4506
+ function Ss({ size: e = 16 }) {
4419
4507
  return /* @__PURE__ */ Q("svg", {
4420
4508
  width: e,
4421
4509
  height: e,
@@ -4429,7 +4517,7 @@ function ps({ size: e = 16 }) {
4429
4517
  })
4430
4518
  });
4431
4519
  }
4432
- function ms({ size: e = 16 }) {
4520
+ function Cs({ size: e = 16 }) {
4433
4521
  return /* @__PURE__ */ Q("svg", {
4434
4522
  width: e,
4435
4523
  height: e,
@@ -4438,7 +4526,7 @@ function ms({ size: e = 16 }) {
4438
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" })
4439
4527
  });
4440
4528
  }
4441
- function hs({ size: e = 16 }) {
4529
+ function ws({ size: e = 16 }) {
4442
4530
  return /* @__PURE__ */ Q("svg", {
4443
4531
  width: e,
4444
4532
  height: e,
@@ -4462,19 +4550,19 @@ function $({ size: e = 16, children: t }) {
4462
4550
  children: t
4463
4551
  });
4464
4552
  }
4465
- function gs({ size: e = 16 }) {
4553
+ function Ts({ size: e = 16 }) {
4466
4554
  return /* @__PURE__ */ Q($, {
4467
4555
  size: e,
4468
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" })
4469
4557
  });
4470
4558
  }
4471
- function _s({ size: e = 16 }) {
4559
+ function Es({ size: e = 16 }) {
4472
4560
  return /* @__PURE__ */ Q($, {
4473
4561
  size: e,
4474
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" })]
4475
4563
  });
4476
4564
  }
4477
- function vs({ size: e = 16 }) {
4565
+ function Ds({ size: e = 16 }) {
4478
4566
  return /* @__PURE__ */ Q($, {
4479
4567
  size: e,
4480
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", {
@@ -4484,7 +4572,7 @@ function vs({ size: e = 16 }) {
4484
4572
  })]
4485
4573
  });
4486
4574
  }
4487
- function ys({ size: e = 16 }) {
4575
+ function Os({ size: e = 16 }) {
4488
4576
  return /* @__PURE__ */ Q($, {
4489
4577
  size: e,
4490
4578
  children: [
@@ -4495,13 +4583,13 @@ function ys({ size: e = 16 }) {
4495
4583
  ]
4496
4584
  });
4497
4585
  }
4498
- function bs({ size: e = 16 }) {
4586
+ function ks({ size: e = 16 }) {
4499
4587
  return /* @__PURE__ */ Q($, {
4500
4588
  size: e,
4501
4589
  children: /* @__PURE__ */ Q("path", { d: "M3 6h18M3 12h18M3 18h18" })
4502
4590
  });
4503
4591
  }
4504
- function xs({ size: e = 16 }) {
4592
+ function As({ size: e = 16 }) {
4505
4593
  return /* @__PURE__ */ Q($, {
4506
4594
  size: e,
4507
4595
  children: [/* @__PURE__ */ Q("circle", {
@@ -4511,13 +4599,13 @@ function xs({ size: e = 16 }) {
4511
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" })]
4512
4600
  });
4513
4601
  }
4514
- function Ss({ size: e = 16 }) {
4602
+ function js({ size: e = 16 }) {
4515
4603
  return /* @__PURE__ */ Q($, {
4516
4604
  size: e,
4517
4605
  children: /* @__PURE__ */ Q("path", { d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79z" })
4518
4606
  });
4519
4607
  }
4520
- function Cs({ size: e = 16 }) {
4608
+ function Ms({ size: e = 16 }) {
4521
4609
  return /* @__PURE__ */ Q($, {
4522
4610
  size: e,
4523
4611
  children: [/* @__PURE__ */ Q("rect", {
@@ -4529,13 +4617,13 @@ function Cs({ size: e = 16 }) {
4529
4617
  }), /* @__PURE__ */ Q("path", { d: "M8 21h8M12 17v4" })]
4530
4618
  });
4531
4619
  }
4532
- function ws({ size: e = 16 }) {
4620
+ function Ns({ size: e = 16 }) {
4533
4621
  return /* @__PURE__ */ Q($, {
4534
4622
  size: e,
4535
4623
  children: /* @__PURE__ */ Q("path", { d: "M12 22s8-3.5 8-10V5l-8-3-8 3v7c0 6.5 8 10 8 10z" })
4536
4624
  });
4537
4625
  }
4538
- function Ts({ size: e = 16 }) {
4626
+ function Ps({ size: e = 16 }) {
4539
4627
  return /* @__PURE__ */ Q($, {
4540
4628
  size: e,
4541
4629
  children: [/* @__PURE__ */ Q("rect", {
@@ -4547,19 +4635,19 @@ function Ts({ size: e = 16 }) {
4547
4635
  }), /* @__PURE__ */ Q("path", { d: "M6 10h.01M10 10h.01M14 10h.01M18 10h.01M6 14h.01M18 14h.01M10 14h4" })]
4548
4636
  });
4549
4637
  }
4550
- function Es({ size: e = 16 }) {
4638
+ function Fs({ size: e = 16 }) {
4551
4639
  return /* @__PURE__ */ Q($, {
4552
4640
  size: e,
4553
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" })]
4554
4642
  });
4555
4643
  }
4556
- function Ds({ size: e = 16 }) {
4644
+ function Is({ size: e = 16 }) {
4557
4645
  return /* @__PURE__ */ Q($, {
4558
4646
  size: e,
4559
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" })]
4560
4648
  });
4561
4649
  }
4562
- function Os({ size: e = 16 }) {
4650
+ function Ls({ size: e = 16 }) {
4563
4651
  return /* @__PURE__ */ Q($, {
4564
4652
  size: e,
4565
4653
  children: [/* @__PURE__ */ Q("circle", {
@@ -4569,7 +4657,7 @@ function Os({ size: e = 16 }) {
4569
4657
  }), /* @__PURE__ */ Q("path", { d: "M4 21a8 8 0 0 1 16 0" })]
4570
4658
  });
4571
4659
  }
4572
- function ks({ size: e = 16 }) {
4660
+ function Rs({ size: e = 16 }) {
4573
4661
  return /* @__PURE__ */ Q($, {
4574
4662
  size: e,
4575
4663
  children: [
@@ -4588,7 +4676,7 @@ function ks({ size: e = 16 }) {
4588
4676
  ]
4589
4677
  });
4590
4678
  }
4591
- function As({ size: e = 16 }) {
4679
+ function zs({ size: e = 16 }) {
4592
4680
  return /* @__PURE__ */ Q($, {
4593
4681
  size: e,
4594
4682
  children: [
@@ -4600,7 +4688,7 @@ function As({ size: e = 16 }) {
4600
4688
  }
4601
4689
  //#endregion
4602
4690
  //#region src/runtime/ui/identity-menu.tsx
4603
- function js({ 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 }) {
4604
4692
  let [l, u] = z(!1), [d, f] = z(!1), [p, m] = z(!1), h = V(null);
4605
4693
  B(() => {
4606
4694
  if (!l) return;
@@ -4617,7 +4705,7 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4617
4705
  }, [l]), B(() => {
4618
4706
  l || (f(!1), m(!1));
4619
4707
  }, [l]);
4620
- let g = ta(e), _ = Ms(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";
4621
4709
  return /* @__PURE__ */ Q("div", {
4622
4710
  ref: h,
4623
4711
  style: {
@@ -4650,7 +4738,7 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4650
4738
  }) : v && _ ? /* @__PURE__ */ Q("span", {
4651
4739
  class: "markup-avatar-initials",
4652
4740
  children: _
4653
- }) : /* @__PURE__ */ Q(Os, { size: 14 })
4741
+ }) : /* @__PURE__ */ Q(Ls, { size: 14 })
4654
4742
  }), v && g ? /* @__PURE__ */ Q("span", {
4655
4743
  class: "markup-sr-only",
4656
4744
  children: g
@@ -4679,7 +4767,7 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4679
4767
  onClick: () => u(!1),
4680
4768
  children: [/* @__PURE__ */ Q("span", {
4681
4769
  class: "ic",
4682
- children: /* @__PURE__ */ Q(As, { size: 16 })
4770
+ children: /* @__PURE__ */ Q(zs, { size: 16 })
4683
4771
  }), /* @__PURE__ */ Q("span", {
4684
4772
  class: "lbl",
4685
4773
  children: "Account"
@@ -4695,7 +4783,7 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4695
4783
  },
4696
4784
  children: [/* @__PURE__ */ Q("span", {
4697
4785
  class: "ic",
4698
- children: /* @__PURE__ */ Q(Ds, { size: 16 })
4786
+ children: /* @__PURE__ */ Q(Is, { size: 16 })
4699
4787
  }), /* @__PURE__ */ Q("span", {
4700
4788
  class: "lbl",
4701
4789
  children: r ? "Signing out…" : p ? "Confirm: sign out of this site" : "Sign out"
@@ -4718,7 +4806,7 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4718
4806
  onClick: () => {
4719
4807
  u(!1), o();
4720
4808
  },
4721
- children: [/* @__PURE__ */ Q(Es, { 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" })]
4722
4810
  }),
4723
4811
  /* @__PURE__ */ Q("button", {
4724
4812
  type: "button",
@@ -4737,12 +4825,12 @@ function js({ identity: e, position: t, isSigningIn: n, isSigningOut: r, dashboa
4737
4825
  }) : null]
4738
4826
  });
4739
4827
  }
4740
- function Ms(e) {
4828
+ function Vs(e) {
4741
4829
  return e && e.trim().split(/\s+/).slice(0, 2).map((e) => e[0]?.toUpperCase() ?? "").join("") || null;
4742
4830
  }
4743
4831
  //#endregion
4744
4832
  //#region src/runtime/use-drag.ts
4745
- function Ns(e) {
4833
+ function Hs(e) {
4746
4834
  let t = V(e);
4747
4835
  t.current = e;
4748
4836
  let [n, r] = z(!1);
@@ -4770,8 +4858,8 @@ function Ns(e) {
4770
4858
  h = !0, r(!0), t.current.onStart?.();
4771
4859
  }
4772
4860
  let a = Math.max(p, window.innerWidth - u - p), _ = Math.max(p, window.innerHeight - d - p), v = {
4773
- left: Ps(c + n, p, a),
4774
- top: Ps(l + i, p, _)
4861
+ left: Us(c + n, p, a),
4862
+ top: Us(l + i, p, _)
4775
4863
  };
4776
4864
  g = v, t.current.onMove(v);
4777
4865
  }
@@ -4786,12 +4874,12 @@ function Ns(e) {
4786
4874
  isDragging: n
4787
4875
  };
4788
4876
  }
4789
- function Ps(e, t, n) {
4877
+ function Us(e, t, n) {
4790
4878
  return Math.max(t, Math.min(n, e));
4791
4879
  }
4792
4880
  //#endregion
4793
4881
  //#region src/runtime/use-focus-trap.ts
4794
- var Fs = [
4882
+ var Ws = [
4795
4883
  "a[href]",
4796
4884
  "button:not([disabled])",
4797
4885
  "input:not([disabled])",
@@ -4799,14 +4887,14 @@ var Fs = [
4799
4887
  "textarea:not([disabled])",
4800
4888
  "[tabindex]:not([tabindex=\"-1\"])"
4801
4889
  ].join(",");
4802
- function Is(e, t) {
4890
+ function Gs(e, t) {
4803
4891
  B(() => {
4804
4892
  if (!t) return;
4805
4893
  let n = e.current;
4806
4894
  if (!n) return;
4807
4895
  function r(e) {
4808
4896
  if (e.key !== "Tab") return;
4809
- let t = Array.from(n.querySelectorAll(Fs)), r = t[0], i = t[t.length - 1];
4897
+ let t = Array.from(n.querySelectorAll(Ws)), r = t[0], i = t[t.length - 1];
4810
4898
  if (!r || !i) return;
4811
4899
  let a = n.getRootNode(), o = a instanceof ShadowRoot ? a.activeElement : document.activeElement;
4812
4900
  (e.shiftKey ? o === r : o === i) && (e.preventDefault(), (e.shiftKey ? i : r).focus());
@@ -4816,7 +4904,7 @@ function Is(e, t) {
4816
4904
  }
4817
4905
  //#endregion
4818
4906
  //#region src/runtime/use-object-url.ts
4819
- function Ls(e) {
4907
+ function Ks(e) {
4820
4908
  let [t, n] = z(null);
4821
4909
  return B(() => {
4822
4910
  if (!e) {
@@ -4829,7 +4917,7 @@ function Ls(e) {
4829
4917
  }
4830
4918
  //#endregion
4831
4919
  //#region src/runtime/ui/author-prompt.tsx
4832
- function Rs({ 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 }) {
4833
4921
  let [c, l] = z(""), [u, d] = z(""), f = V(null);
4834
4922
  B(() => {
4835
4923
  f.current?.focus();
@@ -4963,27 +5051,27 @@ function Rs({ mode: e = "guest-or-sign-in", isPending: t, isConnecting: n = !1,
4963
5051
  }
4964
5052
  //#endregion
4965
5053
  //#region src/runtime/mention-input.ts
4966
- var zs = "data-markup-mention", Bs = "data-markup-mention-name", Vs = /* @__PURE__ */ new Set([
5054
+ var Js = "data-markup-mention", Ys = "data-markup-mention-name", Xs = /* @__PURE__ */ new Set([
4967
5055
  "DIV",
4968
5056
  "P",
4969
5057
  "LI",
4970
5058
  "BLOCKQUOTE",
4971
5059
  "PRE"
4972
- ]), Hs = 3, Us = 1;
4973
- function Ws(e) {
5060
+ ]), Zs = 3, Qs = 1;
5061
+ function $s(e) {
4974
5062
  let t = "", n = (r) => {
4975
5063
  let i = r.childNodes;
4976
5064
  for (let a = 0; a < i.length; a++) {
4977
5065
  let o = i[a];
4978
5066
  if (!o) continue;
4979
- if (o.nodeType === Hs) {
5067
+ if (o.nodeType === Zs) {
4980
5068
  t += o.data;
4981
5069
  continue;
4982
5070
  }
4983
- if (o.nodeType !== Us) continue;
4984
- let s = o, c = s.getAttribute(zs);
5071
+ if (o.nodeType !== Qs) continue;
5072
+ let s = o, c = s.getAttribute(Js);
4985
5073
  if (c) {
4986
- let e = Gs(s);
5074
+ let e = ec(s);
4987
5075
  t += Yr({
4988
5076
  userId: c,
4989
5077
  name: e
@@ -4994,77 +5082,77 @@ function Ws(e) {
4994
5082
  (r !== e || a !== i.length - 1) && (t += "\n");
4995
5083
  continue;
4996
5084
  }
4997
- Vs.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
5085
+ Xs.has(s.tagName) && t !== "" && !t.endsWith("\n") && (t += "\n"), n(s);
4998
5086
  }
4999
5087
  };
5000
5088
  return n(e), t;
5001
5089
  }
5002
- function Gs(e) {
5003
- return e.getAttribute(Bs) || (e.textContent ?? "").replace(/^@/, "");
5090
+ function ec(e) {
5091
+ return e.getAttribute(Ys) || (e.textContent ?? "").replace(/^@/, "");
5004
5092
  }
5005
- function Ks(e, t, n) {
5093
+ function tc(e, t, n) {
5006
5094
  let r = e.createElement("span");
5007
- return r.className = n, r.setAttribute("contenteditable", "false"), r.setAttribute(zs, t.userId), r.setAttribute(Bs, 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;
5008
5096
  }
5009
- function qs(e, t, n) {
5097
+ function nc(e, t, n) {
5010
5098
  let r = e.createDocumentFragment();
5011
5099
  for (let i of Kr(t)) {
5012
5100
  if (i.type === "text") {
5013
5101
  i.value && r.appendChild(e.createTextNode(i.value));
5014
5102
  continue;
5015
5103
  }
5016
- r.appendChild(Ks(e, {
5104
+ r.appendChild(tc(e, {
5017
5105
  userId: i.userId,
5018
5106
  name: i.name
5019
5107
  }, n));
5020
5108
  }
5021
5109
  return r;
5022
5110
  }
5023
- function Js(e) {
5111
+ function rc(e) {
5024
5112
  let t = e.getRootNode();
5025
5113
  return typeof t.getSelection == "function" ? t.getSelection() : e.ownerDocument.getSelection();
5026
5114
  }
5027
- function Ys(e) {
5028
- let t = Js(e);
5115
+ function ic(e) {
5116
+ let t = rc(e);
5029
5117
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return null;
5030
5118
  let n = t.focusNode;
5031
- return !n || n.nodeType !== Hs || !e.contains(n) || Xs(n, e) ? null : {
5119
+ return !n || n.nodeType !== Zs || !e.contains(n) || ac(n, e) ? null : {
5032
5120
  node: n,
5033
5121
  offset: t.focusOffset
5034
5122
  };
5035
5123
  }
5036
- function Xs(e, t) {
5124
+ function ac(e, t) {
5037
5125
  let n = e;
5038
5126
  for (; n && n !== t;) {
5039
- if (n.nodeType === Us && n.hasAttribute("data-markup-mention")) return n;
5127
+ if (n.nodeType === Qs && n.hasAttribute("data-markup-mention")) return n;
5040
5128
  n = n.parentNode;
5041
5129
  }
5042
5130
  return null;
5043
5131
  }
5044
- function Zs(e) {
5045
- let t = Js(e);
5132
+ function oc(e) {
5133
+ let t = rc(e);
5046
5134
  if (!t || t.rangeCount === 0 || !t.isCollapsed) return;
5047
5135
  let n = t.focusNode;
5048
5136
  if (!n || !e.contains(n)) return;
5049
- let r = Xs(n, e);
5137
+ let r = ac(n, e);
5050
5138
  if (!r) return;
5051
5139
  let i = r.nextSibling;
5052
- (!i || i.nodeType !== Hs) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), Qs(e, i, 0);
5140
+ (!i || i.nodeType !== Zs) && (i = e.ownerDocument.createTextNode(""), r.parentNode?.insertBefore(i, r.nextSibling)), sc(e, i, 0);
5053
5141
  }
5054
- function Qs(e, t, n) {
5055
- let r = Js(e);
5142
+ function sc(e, t, n) {
5143
+ let r = rc(e);
5056
5144
  if (!r) return;
5057
5145
  let i = e.ownerDocument.createRange();
5058
5146
  i.setStart(t, n), i.collapse(!0), r.removeAllRanges(), r.addRange(i);
5059
5147
  }
5060
- function $s(e) {
5148
+ function cc(e) {
5061
5149
  let t = Jr(e.node.data, e.offset);
5062
5150
  return t ? {
5063
5151
  ...t,
5064
5152
  textNode: e.node
5065
5153
  } : null;
5066
5154
  }
5067
- function ec(e, t, n, r) {
5155
+ function lc(e, t, n, r) {
5068
5156
  if (Yr(n) == null) return !1;
5069
5157
  let i = t.textNode;
5070
5158
  if (!e.contains(i)) return !1;
@@ -5072,31 +5160,31 @@ function ec(e, t, n, r) {
5072
5160
  if (!a || t.caret > i.data.length) return !1;
5073
5161
  i.deleteData(t.at, t.caret - t.at);
5074
5162
  let o = i.splitText(t.at);
5075
- return a.insertBefore(Ks(e.ownerDocument, n, r), o), o.data.startsWith(" ") || o.insertData(0, " "), Qs(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;
5076
5164
  }
5077
- function tc(e, t) {
5078
- let n = Js(e);
5165
+ function uc(e, t) {
5166
+ let n = rc(e);
5079
5167
  if (!n || n.rangeCount === 0) return;
5080
5168
  let r = n.getRangeAt(0);
5081
5169
  if (!e.contains(r.commonAncestorContainer)) return;
5082
5170
  r.deleteContents();
5083
5171
  let { startContainer: i, startOffset: a } = r;
5084
- if (i.nodeType === Hs) {
5172
+ if (i.nodeType === Zs) {
5085
5173
  let n = i;
5086
- n.insertData(a, t), Qs(e, n, a + t.length);
5174
+ n.insertData(a, t), sc(e, n, a + t.length);
5087
5175
  return;
5088
5176
  }
5089
5177
  let o = e.ownerDocument.createTextNode(t);
5090
- r.insertNode(o), Qs(e, o, o.data.length);
5178
+ r.insertNode(o), sc(e, o, o.data.length);
5091
5179
  }
5092
- function nc(e, t) {
5180
+ function dc(e, t) {
5093
5181
  let n = e.ownerDocument, r = null, i = null, a = !0;
5094
5182
  function o(t) {
5095
5183
  let n = t.length === 0;
5096
5184
  (n !== a || e.hasAttribute("data-empty") !== n) && (a = n, e.toggleAttribute("data-empty", n));
5097
5185
  }
5098
5186
  function s() {
5099
- let n = Ws(e);
5187
+ let n = $s(e);
5100
5188
  o(n), t.onChange(n);
5101
5189
  }
5102
5190
  function c(e) {
@@ -5112,7 +5200,7 @@ function nc(e, t) {
5112
5200
  c(null);
5113
5201
  return;
5114
5202
  }
5115
- let n = Ys(e), r = n ? $s(n) : null;
5203
+ let n = ic(e), r = n ? cc(n) : null;
5116
5204
  if (r && i && r.textNode === i.node && r.at === i.at) {
5117
5205
  c(null);
5118
5206
  return;
@@ -5120,29 +5208,29 @@ function nc(e, t) {
5120
5208
  i = null, c(r);
5121
5209
  }
5122
5210
  function u(r) {
5123
- e.replaceChildren(qs(n, r, t.chipClass)), o(Ws(e)), i = null, c(null);
5211
+ e.replaceChildren(nc(n, r, t.chipClass)), o($s(e)), i = null, c(null);
5124
5212
  }
5125
5213
  let d = () => {
5126
5214
  s(), l();
5127
5215
  }, f = () => l(), p = () => {
5128
- Zs(e), l();
5216
+ oc(e), l();
5129
5217
  }, m = (t) => {
5130
5218
  let n = t.clipboardData?.getData("text/plain");
5131
- t.preventDefault(), n && (tc(e, n.replace(/\r\n?/g, "\n")), s(), l());
5219
+ t.preventDefault(), n && (uc(e, n.replace(/\r\n?/g, "\n")), s(), l());
5132
5220
  }, h = (e) => {
5133
5221
  e.preventDefault();
5134
5222
  };
5135
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 ?? ""), {
5136
- getValue: () => Ws(e),
5224
+ getValue: () => $s(e),
5137
5225
  setValue: u,
5138
5226
  focus() {
5139
5227
  e.focus();
5140
5228
  let t = e.lastChild;
5141
- t && (t.nodeType === Hs ? Qs(e, t, t.data.length) : Qs(e, e, e.childNodes.length));
5229
+ t && (t.nodeType === Zs ? sc(e, t, t.data.length) : sc(e, e, e.childNodes.length));
5142
5230
  },
5143
5231
  insertMention(n) {
5144
- let a = Ys(e), o = (a ? $s(a) : null) ?? r;
5145
- o && ec(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));
5146
5234
  },
5147
5235
  syncTrigger: l,
5148
5236
  clearTrigger: () => c(null),
@@ -5157,31 +5245,94 @@ function nc(e, t) {
5157
5245
  }
5158
5246
  };
5159
5247
  }
5160
- var rc = null;
5161
- function ic() {
5162
- if (rc) return rc;
5248
+ var fc = null;
5249
+ function pc() {
5250
+ if (fc) return fc;
5163
5251
  if (typeof document > "u") return "true";
5164
5252
  let e = document.createElement("div");
5165
5253
  try {
5166
- e.contentEditable = "plaintext-only", rc = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5254
+ e.contentEditable = "plaintext-only", fc = e.contentEditable === "plaintext-only" ? "plaintext-only" : "true";
5167
5255
  } catch {
5168
- rc = "true";
5256
+ fc = "true";
5257
+ }
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;
5169
5289
  }
5170
- return rc;
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;
5171
5316
  }
5172
5317
  //#endregion
5173
5318
  //#region src/runtime/ui/mentions.tsx
5174
- function ac({ body: e, mentions: t, trailing: n }) {
5319
+ function xc({ body: e, mentions: t, trailing: n }) {
5175
5320
  let r = at(() => new Set(t), [t]);
5176
5321
  return /* @__PURE__ */ Q("p", {
5177
5322
  class: "markup-comment-body",
5178
- 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", {
5179
5324
  class: "markup-mention-chip",
5180
5325
  children: ["@", e.name]
5181
- }, 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]
5182
5333
  });
5183
5334
  }
5184
- function oc(e) {
5335
+ function Sc(e) {
5185
5336
  let { members: t, trigger: n, onSelect: r, onClose: i } = e, [a, o] = z(0), s = at(() => {
5186
5337
  if (!n) return [];
5187
5338
  let e = n.query.toLowerCase();
@@ -5209,12 +5360,12 @@ function oc(e) {
5209
5360
  handleKeyDown: c
5210
5361
  };
5211
5362
  }
5212
- function sc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5363
+ function Cc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i }) {
5213
5364
  let a = V(null);
5214
5365
  return it(() => {
5215
5366
  let e = null;
5216
5367
  function t() {
5217
- i.current && a.current && uc(i.current, a.current);
5368
+ i.current && a.current && Ec(i.current, a.current);
5218
5369
  }
5219
5370
  function n() {
5220
5371
  e ??= requestAnimationFrame(() => {
@@ -5256,16 +5407,16 @@ function sc({ items: e, highlight: t, setHighlight: n, onSelect: r, anchor: i })
5256
5407
  }, e.userId))
5257
5408
  });
5258
5409
  }
5259
- var cc = 4, lc = 8;
5260
- function uc(e, t) {
5410
+ var wc = 4, Tc = 8;
5411
+ function Ec(e, t) {
5261
5412
  let n = e.getBoundingClientRect(), r = n.bottom > 0 && n.top < window.innerHeight && n.right > 0 && n.left < window.innerWidth;
5262
5413
  if (t.style.visibility = r ? "" : "hidden", !r) return;
5263
- let i = t.offsetHeight, a = n.top - lc, o = window.innerHeight - n.bottom - lc, s = a >= i + cc || a >= o ? n.top - cc - i : n.bottom + cc, c = window.innerHeight - i - lc;
5264
- t.style.top = `${Math.max(lc, 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`;
5265
5416
  }
5266
5417
  //#endregion
5267
5418
  //#region src/runtime/ui/mention-input.tsx
5268
- function dc({ 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 }) {
5269
5420
  let u = V(null), d = V(null), [f, p] = z(null), m = V(t);
5270
5421
  m.current = t;
5271
5422
  let h = V(r);
@@ -5274,7 +5425,7 @@ function dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5274
5425
  it(() => {
5275
5426
  let e = u.current;
5276
5427
  if (!e) return;
5277
- let t = nc(e, {
5428
+ let t = dc(e, {
5278
5429
  chipClass: "markup-mention-chip",
5279
5430
  initialValue: g.current,
5280
5431
  onChange: (e) => m.current(e),
@@ -5294,7 +5445,7 @@ function dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5294
5445
  let t = d.current;
5295
5446
  t && t.getValue() !== e && t.setValue(e);
5296
5447
  }, [e]);
5297
- let _ = oc({
5448
+ let _ = Sc({
5298
5449
  members: r ?? [],
5299
5450
  trigger: f,
5300
5451
  onSelect: (e) => d.current?.insertMention(e),
@@ -5307,7 +5458,7 @@ function dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5307
5458
  "aria-label": i,
5308
5459
  "aria-disabled": o || void 0,
5309
5460
  class: Z("markup-mention-input", c),
5310
- contentEditable: o ? "false" : ic(),
5461
+ contentEditable: o ? "false" : pc(),
5311
5462
  "data-placeholder": a,
5312
5463
  tabIndex: o ? -1 : 0,
5313
5464
  onKeyDown: (e) => {
@@ -5316,7 +5467,7 @@ function dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5316
5467
  onBlur: () => {
5317
5468
  setTimeout(() => d.current?.clearTrigger(), 120);
5318
5469
  }
5319
- }), _.isOpen ? /* @__PURE__ */ Q(sc, {
5470
+ }), _.isOpen ? /* @__PURE__ */ Q(Cc, {
5320
5471
  items: _.items,
5321
5472
  highlight: _.highlight,
5322
5473
  setHighlight: _.setHighlight,
@@ -5326,8 +5477,8 @@ function dc({ value: e, onChange: t, onKeyDown: n, members: r, label: i, placeho
5326
5477
  }
5327
5478
  //#endregion
5328
5479
  //#region src/runtime/ui/composer.tsx
5329
- var fc = 4e3;
5330
- function pc({ 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 }) {
5331
5482
  let [l, u] = z(""), d = V(null), f = V(!1);
5332
5483
  B(() => {
5333
5484
  f.current && !i && !a && (u(""), s?.(!1), d.current?.focus()), f.current = i;
@@ -5336,7 +5487,7 @@ function pc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5336
5487
  a,
5337
5488
  s
5338
5489
  ]);
5339
- let p = fc - l.length, m = p < 0;
5490
+ let p = Oc - l.length, m = p < 0;
5340
5491
  function h(e) {
5341
5492
  e?.preventDefault();
5342
5493
  let t = l.trim();
@@ -5345,7 +5496,7 @@ function pc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5345
5496
  function g(e) {
5346
5497
  (e.metaKey || e.ctrlKey) && e.key === "Enter" && h(e);
5347
5498
  }
5348
- let _ = l.length > 0, v = os();
5499
+ let _ = l.length > 0, v = hs();
5349
5500
  function y(e) {
5350
5501
  return /* @__PURE__ */ Q("button", {
5351
5502
  type: "submit",
@@ -5354,14 +5505,14 @@ function pc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5354
5505
  "aria-label": i ? "Sending…" : n,
5355
5506
  title: i ? "Sending…" : n,
5356
5507
  tabIndex: e,
5357
- children: /* @__PURE__ */ Q(ms, { size: 14 })
5508
+ children: /* @__PURE__ */ Q(Cs, { size: 14 })
5358
5509
  });
5359
5510
  }
5360
5511
  return /* @__PURE__ */ Q("form", {
5361
5512
  class: Z("markup-composer", _ && "is-filled"),
5362
5513
  onSubmit: h,
5363
5514
  children: [
5364
- /* @__PURE__ */ Q(dc, {
5515
+ /* @__PURE__ */ Q(Dc, {
5365
5516
  class: "markup-composer-input",
5366
5517
  label: e,
5367
5518
  placeholder: t,
@@ -5417,17 +5568,17 @@ function pc({ label: e, placeholder: t = "Leave feedback…", submitLabel: n = "
5417
5568
  }
5418
5569
  //#endregion
5419
5570
  //#region src/runtime/ui/new-thread-popover.tsx
5420
- var mc = "https://markup.pixelmatters.dev/docs/install#9-screenshots-privacy";
5421
- function hc({ 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 }) {
5422
5573
  let b = V(null);
5423
- Is(b, !0);
5574
+ Gs(b, !0);
5424
5575
  let x = V(!1), C = V(!1), [w, T] = z(!1), E = H((e) => {
5425
5576
  C.current = e, T(e);
5426
5577
  }, []), D = H(() => {
5427
5578
  C.current || (x.current ? E(!0) : y());
5428
5579
  }, [y, E]), O = H(() => {
5429
5580
  E(!1), b.current?.querySelector(".markup-mention-input")?.focus();
5430
- }, [E]), [k, A] = z(!1), [ee, te] = z(!1), j = Ls(l), M = V(null), [ne, re] = z(null), { onPointerDown: ie, isDragging: ae } = Ns({
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({
5431
5582
  targetRef: b,
5432
5583
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
5433
5584
  onMove: re
@@ -5458,7 +5609,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5458
5609
  }, [D, O]), B(() => {
5459
5610
  w && b.current?.querySelector(".markup-discard-confirm-keep")?.focus();
5460
5611
  }, [w]);
5461
- let oe = gc(e - window.scrollX + 16, 12, window.innerWidth - 320 - 12), se = gc(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;
5462
5613
  return /* @__PURE__ */ Q("div", {
5463
5614
  ref: b,
5464
5615
  class: Z("markup-popover", ne && "is-floating", ae && "is-dragging"),
@@ -5482,7 +5633,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5482
5633
  class: "markup-icon-btn",
5483
5634
  "aria-label": "Discard pin",
5484
5635
  onClick: D,
5485
- children: /* @__PURE__ */ Q(ls, { size: 16 })
5636
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
5486
5637
  })]
5487
5638
  }),
5488
5639
  r == null ? /* @__PURE__ */ Q("div", {
@@ -5502,7 +5653,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5502
5653
  }) : null
5503
5654
  ]
5504
5655
  }),
5505
- /* @__PURE__ */ Q(pc, {
5656
+ /* @__PURE__ */ Q(kc, {
5506
5657
  label: "Feedback",
5507
5658
  placeholder: "What's wrong, missing, or worth noting?",
5508
5659
  submitLabel: "Post markup",
@@ -5527,13 +5678,13 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5527
5678
  class: "markup-screenshot-checkbox",
5528
5679
  disabled: !0
5529
5680
  }),
5530
- /* @__PURE__ */ Q(ps, { size: 12 }),
5681
+ /* @__PURE__ */ Q(Ss, { size: 12 }),
5531
5682
  /* @__PURE__ */ Q("span", { children: "Capturing…" })
5532
5683
  ]
5533
5684
  }) : d ? /* @__PURE__ */ Q("span", {
5534
5685
  class: "markup-screenshot-status",
5535
5686
  title: "This page has something the capture can't read, often a third-party image. Your comment will post without a screenshot.",
5536
- children: [/* @__PURE__ */ Q(ps, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
5687
+ children: [/* @__PURE__ */ Q(Ss, { size: 12 }), /* @__PURE__ */ Q("span", { children: "Screenshot unavailable" })]
5537
5688
  }) : /* @__PURE__ */ Q("label", {
5538
5689
  class: "markup-screenshot-toggle",
5539
5690
  children: [
@@ -5543,7 +5694,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5543
5694
  checked: k,
5544
5695
  onChange: (e) => A(e.currentTarget.checked)
5545
5696
  }),
5546
- /* @__PURE__ */ Q(ps, { size: 12 }),
5697
+ /* @__PURE__ */ Q(Ss, { size: 12 }),
5547
5698
  /* @__PURE__ */ Q("span", { children: "Attach screenshot" })
5548
5699
  ]
5549
5700
  }),
@@ -5594,7 +5745,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5594
5745
  " ",
5595
5746
  /* @__PURE__ */ Q("a", {
5596
5747
  class: "markup-screenshot-help-link",
5597
- href: mc,
5748
+ href: Ac,
5598
5749
  target: "_blank",
5599
5750
  rel: "noopener noreferrer",
5600
5751
  children: "More info here."
@@ -5603,7 +5754,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5603
5754
  })] }) : null]
5604
5755
  }) : null
5605
5756
  ]
5606
- }) : /* @__PURE__ */ Q(Rs, {
5757
+ }) : /* @__PURE__ */ Q(qs, {
5607
5758
  mode: r,
5608
5759
  isPending: s,
5609
5760
  isConnecting: a,
@@ -5624,7 +5775,7 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5624
5775
  onClick: (e) => {
5625
5776
  e.stopPropagation(), M.current?.close();
5626
5777
  },
5627
- children: /* @__PURE__ */ Q(ls, { size: 16 })
5778
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
5628
5779
  }), /* @__PURE__ */ Q("img", {
5629
5780
  class: "markup-lightbox-img",
5630
5781
  src: j,
@@ -5667,12 +5818,12 @@ function hc({ pageX: e, pageY: t, authorName: n, authorPromptMode: r, isVerified
5667
5818
  ]
5668
5819
  });
5669
5820
  }
5670
- function gc(e, t, n) {
5821
+ function Mc(e, t, n) {
5671
5822
  return Math.max(t, Math.min(n, e));
5672
5823
  }
5673
5824
  //#endregion
5674
5825
  //#region src/runtime/ui/notifications-panel.tsx
5675
- function _c({ 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 }) {
5676
5827
  let s = e.some((e) => e.readAt == null);
5677
5828
  return /* @__PURE__ */ Q("div", {
5678
5829
  class: "markup-notifications-panel",
@@ -5687,7 +5838,7 @@ function _c({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5687
5838
  title: "Back to menu",
5688
5839
  "aria-label": "Back to menu",
5689
5840
  onClick: r,
5690
- children: /* @__PURE__ */ Q(us, { size: 16 })
5841
+ children: /* @__PURE__ */ Q(ys, { size: 16 })
5691
5842
  }),
5692
5843
  /* @__PURE__ */ Q("span", {
5693
5844
  class: "markup-eyebrow",
@@ -5744,7 +5895,7 @@ function _c({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5744
5895
  role: "img",
5745
5896
  "aria-label": "Written by an AI agent",
5746
5897
  title: "Written by an AI agent on this person's behalf",
5747
- children: /* @__PURE__ */ Q(ks, { size: 11 })
5898
+ children: /* @__PURE__ */ Q(Rs, { size: 11 })
5748
5899
  }) : null,
5749
5900
  /* @__PURE__ */ Q("span", {
5750
5901
  class: "markup-notifications-panel-sep",
@@ -5752,7 +5903,7 @@ function _c({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5752
5903
  }),
5753
5904
  /* @__PURE__ */ Q("span", {
5754
5905
  class: "markup-notifications-panel-time",
5755
- children: vc(e.createdAt)
5906
+ children: Pc(e.createdAt)
5756
5907
  })
5757
5908
  ]
5758
5909
  }),
@@ -5781,7 +5932,7 @@ function _c({ items: e, isLoading: t, error: n, onBack: r, onItemClick: i, onMar
5781
5932
  })]
5782
5933
  });
5783
5934
  }
5784
- function vc(e) {
5935
+ function Pc(e) {
5785
5936
  let t = Date.now() - e, n = Math.floor(t / 1e3);
5786
5937
  if (n < 60) return "just now";
5787
5938
  let r = Math.floor(n / 60);
@@ -5793,18 +5944,18 @@ function vc(e) {
5793
5944
  }
5794
5945
  //#endregion
5795
5946
  //#region src/runtime/use-theme.ts
5796
- function yc() {
5947
+ function Fc() {
5797
5948
  let [, e] = z(0);
5798
- return B(() => Ue(() => e((e) => e + 1)), []), {
5799
- mode: Be(),
5800
- resolved: Ve(),
5801
- set: He
5949
+ return B(() => We(() => e((e) => e + 1)), []), {
5950
+ mode: Ve(),
5951
+ resolved: He(),
5952
+ set: Ue
5802
5953
  };
5803
5954
  }
5804
5955
  //#endregion
5805
5956
  //#region src/runtime/ui/overflow-menu.tsx
5806
- function bc({ 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 }) {
5807
- let [f, p] = z(!1), m = V(null), h = yc();
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();
5808
5959
  B(() => {
5809
5960
  if (!f) return;
5810
5961
  function e(e) {
@@ -5818,7 +5969,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5818
5969
  document.removeEventListener("click", e, !0), document.removeEventListener("keydown", t);
5819
5970
  };
5820
5971
  }, [f]);
5821
- let g = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: _ } = os();
5972
+ let g = e === "bottom-left" ? "is-anchor-left" : e === "bottom-center" ? "is-anchor-center" : "is-anchor-right", { mod: _ } = hs();
5822
5973
  return /* @__PURE__ */ Q("div", {
5823
5974
  ref: m,
5824
5975
  style: {
@@ -5837,7 +5988,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5837
5988
  onClick: (e) => {
5838
5989
  e.preventDefault(), e.stopPropagation(), p((e) => !e);
5839
5990
  },
5840
- children: /* @__PURE__ */ Q(bs, { size: 16 })
5991
+ children: /* @__PURE__ */ Q(ks, { size: 16 })
5841
5992
  }), f ? /* @__PURE__ */ Q("div", {
5842
5993
  class: Z("markup-pop", g),
5843
5994
  "data-pop": "overflow",
@@ -5861,7 +6012,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5861
6012
  title: "Light",
5862
6013
  class: Z(h.mode === "light" && "is-on"),
5863
6014
  onClick: () => h.set("light"),
5864
- children: /* @__PURE__ */ Q(xs, { size: 14 })
6015
+ children: /* @__PURE__ */ Q(As, { size: 14 })
5865
6016
  }),
5866
6017
  /* @__PURE__ */ Q("button", {
5867
6018
  type: "button",
@@ -5871,7 +6022,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5871
6022
  title: "Dark",
5872
6023
  class: Z(h.mode === "dark" && "is-on"),
5873
6024
  onClick: () => h.set("dark"),
5874
- children: /* @__PURE__ */ Q(Ss, { size: 14 })
6025
+ children: /* @__PURE__ */ Q(js, { size: 14 })
5875
6026
  }),
5876
6027
  /* @__PURE__ */ Q("button", {
5877
6028
  type: "button",
@@ -5881,7 +6032,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5881
6032
  title: `Auto, currently ${h.resolved}`,
5882
6033
  class: Z(h.mode === "auto" && "is-on"),
5883
6034
  onClick: () => h.set("auto"),
5884
- children: /* @__PURE__ */ Q(Cs, { size: 14 })
6035
+ children: /* @__PURE__ */ Q(Ms, { size: 14 })
5885
6036
  })
5886
6037
  ]
5887
6038
  })]
@@ -5904,7 +6055,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5904
6055
  title: "Bottom left",
5905
6056
  class: Z(e === "bottom-left" && "is-on"),
5906
6057
  onClick: () => t("bottom-left"),
5907
- children: /* @__PURE__ */ Q(xc, { side: "left" })
6058
+ children: /* @__PURE__ */ Q(Lc, { side: "left" })
5908
6059
  }),
5909
6060
  /* @__PURE__ */ Q("button", {
5910
6061
  type: "button",
@@ -5914,7 +6065,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5914
6065
  title: "Bottom center",
5915
6066
  class: Z(e === "bottom-center" && "is-on"),
5916
6067
  onClick: () => t("bottom-center"),
5917
- children: /* @__PURE__ */ Q(xc, { side: "center" })
6068
+ children: /* @__PURE__ */ Q(Lc, { side: "center" })
5918
6069
  }),
5919
6070
  /* @__PURE__ */ Q("button", {
5920
6071
  type: "button",
@@ -5924,7 +6075,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5924
6075
  title: "Bottom right",
5925
6076
  class: Z(e === "bottom-right" && "is-on"),
5926
6077
  onClick: () => t("bottom-right"),
5927
- children: /* @__PURE__ */ Q(xc, { side: "right" })
6078
+ children: /* @__PURE__ */ Q(Lc, { side: "right" })
5928
6079
  })
5929
6080
  ]
5930
6081
  })]
@@ -5946,7 +6097,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5946
6097
  children: [
5947
6098
  /* @__PURE__ */ Q("span", {
5948
6099
  class: "ic",
5949
- children: /* @__PURE__ */ Q(Sc, {})
6100
+ children: /* @__PURE__ */ Q(Rc, {})
5950
6101
  }),
5951
6102
  /* @__PURE__ */ Q("span", {
5952
6103
  class: "lbl",
@@ -5973,7 +6124,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5973
6124
  children: [
5974
6125
  /* @__PURE__ */ Q("span", {
5975
6126
  class: "ic",
5976
- children: /* @__PURE__ */ Q(fs, { size: 16 })
6127
+ children: /* @__PURE__ */ Q(xs, { size: 16 })
5977
6128
  }),
5978
6129
  /* @__PURE__ */ Q("span", {
5979
6130
  class: "lbl",
@@ -5997,7 +6148,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
5997
6148
  },
5998
6149
  children: [/* @__PURE__ */ Q("span", {
5999
6150
  class: "ic",
6000
- children: /* @__PURE__ */ Q(ws, { size: 16 })
6151
+ children: /* @__PURE__ */ Q(Ns, { size: 16 })
6001
6152
  }), /* @__PURE__ */ Q("span", {
6002
6153
  class: "lbl",
6003
6154
  children: "Privacy & data"
@@ -6012,7 +6163,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6012
6163
  },
6013
6164
  children: [/* @__PURE__ */ Q("span", {
6014
6165
  class: "ic",
6015
- children: /* @__PURE__ */ Q(Ts, { size: 16 })
6166
+ children: /* @__PURE__ */ Q(Ps, { size: 16 })
6016
6167
  }), /* @__PURE__ */ Q("span", {
6017
6168
  class: "lbl",
6018
6169
  children: "Keyboard shortcuts"
@@ -6029,7 +6180,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6029
6180
  children: [
6030
6181
  /* @__PURE__ */ Q("span", {
6031
6182
  class: "ic",
6032
- children: /* @__PURE__ */ Q(Cc, {})
6183
+ children: /* @__PURE__ */ Q(zc, {})
6033
6184
  }),
6034
6185
  /* @__PURE__ */ Q("span", {
6035
6186
  class: "lbl",
@@ -6047,7 +6198,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6047
6198
  target: "_blank",
6048
6199
  rel: "noopener noreferrer",
6049
6200
  children: [
6050
- /* @__PURE__ */ Q(cs, { size: 12 }),
6201
+ /* @__PURE__ */ Q(_s, { size: 12 }),
6051
6202
  /* @__PURE__ */ Q("span", { children: "Powered by Markup" }),
6052
6203
  /* @__PURE__ */ Q("span", {
6053
6204
  class: "ver",
@@ -6059,7 +6210,7 @@ function bc({ position: e, onSetPosition: t, autoCapture: n, autoCaptureLocked:
6059
6210
  }) : null]
6060
6211
  });
6061
6212
  }
6062
- function xc({ side: e }) {
6213
+ function Lc({ side: e }) {
6063
6214
  return /* @__PURE__ */ Q("svg", {
6064
6215
  width: 14,
6065
6216
  height: 14,
@@ -6085,7 +6236,7 @@ function xc({ side: e }) {
6085
6236
  })]
6086
6237
  });
6087
6238
  }
6088
- function Sc() {
6239
+ function Rc() {
6089
6240
  return /* @__PURE__ */ Q("svg", {
6090
6241
  width: 16,
6091
6242
  height: 16,
@@ -6103,7 +6254,7 @@ function Sc() {
6103
6254
  })]
6104
6255
  });
6105
6256
  }
6106
- function Cc() {
6257
+ function zc() {
6107
6258
  return /* @__PURE__ */ Q("svg", {
6108
6259
  width: 16,
6109
6260
  height: 16,
@@ -6124,7 +6275,7 @@ function Cc() {
6124
6275
  }
6125
6276
  //#endregion
6126
6277
  //#region src/runtime/ui/panel-popover.tsx
6127
- function wc({ 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 }) {
6128
6279
  let o = V(null);
6129
6280
  return B(() => {
6130
6281
  function e(e) {
@@ -6154,7 +6305,7 @@ function wc({ kind: e, label: t, position: n, ignoreToolbarKind: r, onClose: i,
6154
6305
  }
6155
6306
  //#endregion
6156
6307
  //#region src/runtime/ui/pin.tsx
6157
- function Tc({ 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 }) {
6158
6309
  let s = t - window.scrollY, c = e - window.scrollX;
6159
6310
  return /* @__PURE__ */ Q("button", {
6160
6311
  type: "button",
@@ -6170,11 +6321,11 @@ function Tc({ pageX: e, pageY: t, count: n, isActive: r, isUnresolved: i, isClos
6170
6321
  title: `Open ${a ? "resolved " : ""}feedback thread (${n} comment${n === 1 ? "" : "s"})`,
6171
6322
  children: /* @__PURE__ */ Q("span", {
6172
6323
  class: "markup-pin-num",
6173
- children: a ? /* @__PURE__ */ Q(fs, { size: 14 }) : n
6324
+ children: a ? /* @__PURE__ */ Q(xs, { size: 14 }) : n
6174
6325
  })
6175
6326
  });
6176
6327
  }
6177
- function Ec({ pageX: e, pageY: t }) {
6328
+ function Hc({ pageX: e, pageY: t }) {
6178
6329
  let n = t - window.scrollY, r = e - window.scrollX;
6179
6330
  return /* @__PURE__ */ Q("div", {
6180
6331
  class: "markup-pin markup-pin-ghost is-anchor",
@@ -6191,7 +6342,7 @@ function Ec({ pageX: e, pageY: t }) {
6191
6342
  }
6192
6343
  //#endregion
6193
6344
  //#region src/runtime/ui/placement-overlay.tsx
6194
- function Dc({ onPlace: e, onCancel: t }) {
6345
+ function Uc({ onPlace: e, onCancel: t }) {
6195
6346
  let n = V(null);
6196
6347
  return it(() => {
6197
6348
  let r = n.current?.getRootNode() ?? null, i = (e) => r !== null && e.composedPath().includes(r);
@@ -6216,7 +6367,7 @@ function Dc({ onPlace: e, onCancel: t }) {
6216
6367
  window.addEventListener("keydown", a);
6217
6368
  for (let e of l) window.addEventListener(e, o, c);
6218
6369
  window.addEventListener("click", s, c);
6219
- let u = Oc();
6370
+ let u = Wc();
6220
6371
  return () => {
6221
6372
  window.removeEventListener("keydown", a);
6222
6373
  for (let e of l) window.removeEventListener(e, o, c);
@@ -6232,7 +6383,7 @@ function Dc({ onPlace: e, onCancel: t }) {
6232
6383
  })
6233
6384
  });
6234
6385
  }
6235
- function Oc() {
6386
+ function Wc() {
6236
6387
  let e = "html, html * { cursor: crosshair !important; }";
6237
6388
  if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
6238
6389
  let t = new CSSStyleSheet();
@@ -6245,7 +6396,7 @@ function Oc() {
6245
6396
  }
6246
6397
  //#endregion
6247
6398
  //#region src/runtime/ui/privacy-panel.tsx
6248
- function kc({ 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 }) {
6249
6400
  let [l, u] = z(!1), d = ta(e), f = e.kind === "verified", p = f ? e.identity.email : void 0, m = e.kind === "anon";
6250
6401
  return /* @__PURE__ */ Q("div", {
6251
6402
  class: "markup-panel",
@@ -6260,7 +6411,7 @@ function kc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6260
6411
  title: "Close",
6261
6412
  "aria-label": "Close privacy and data",
6262
6413
  onClick: c,
6263
- children: /* @__PURE__ */ Q(ls, { size: 14 })
6414
+ children: /* @__PURE__ */ Q(vs, { size: 14 })
6264
6415
  })]
6265
6416
  }), /* @__PURE__ */ Q("div", {
6266
6417
  class: "markup-panel-body",
@@ -6345,7 +6496,7 @@ function kc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6345
6496
  "Only ",
6346
6497
  /* @__PURE__ */ Q("span", {
6347
6498
  class: "markup-panel-mono",
6348
- children: Ac(t)
6499
+ children: Kc(t)
6349
6500
  }),
6350
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."
6351
6502
  ]
@@ -6381,7 +6532,7 @@ function kc({ identity: e, apiUrl: t, commentAccess: n = "anyone", autoCapture:
6381
6532
  })]
6382
6533
  });
6383
6534
  }
6384
- function Ac(e) {
6535
+ function Kc(e) {
6385
6536
  try {
6386
6537
  return new URL(e).host;
6387
6538
  } catch {
@@ -6390,8 +6541,8 @@ function Ac(e) {
6390
6541
  }
6391
6542
  //#endregion
6392
6543
  //#region src/runtime/ui/shortcuts-panel.tsx
6393
- function jc({ onClose: e }) {
6394
- let { mod: t, enter: n } = os();
6544
+ function qc({ onClose: e }) {
6545
+ let { mod: t, enter: n } = hs();
6395
6546
  return /* @__PURE__ */ Q("div", {
6396
6547
  class: "markup-panel",
6397
6548
  children: [/* @__PURE__ */ Q("header", {
@@ -6405,7 +6556,7 @@ function jc({ onClose: e }) {
6405
6556
  title: "Close",
6406
6557
  "aria-label": "Close keyboard shortcuts",
6407
6558
  onClick: e,
6408
- children: /* @__PURE__ */ Q(ls, { size: 14 })
6559
+ children: /* @__PURE__ */ Q(vs, { size: 14 })
6409
6560
  })]
6410
6561
  }), /* @__PURE__ */ Q("div", {
6411
6562
  class: "markup-panel-body",
@@ -6485,14 +6636,14 @@ function jc({ onClose: e }) {
6485
6636
  }
6486
6637
  //#endregion
6487
6638
  //#region src/runtime/ui/thread-popover.tsx
6488
- var Mc = [
6639
+ var Jc = [
6489
6640
  "👍",
6490
6641
  "❤️",
6491
6642
  "🎉",
6492
6643
  "😮",
6493
6644
  "😄",
6494
6645
  "❓"
6495
- ], Nc = Ur({
6646
+ ], Yc = Ur({
6496
6647
  none: {
6497
6648
  "toggle-thread-menu": () => ({
6498
6649
  kind: "thread-menu",
@@ -6548,13 +6699,13 @@ var Mc = [
6548
6699
  dismiss: () => ({ kind: "none" })
6549
6700
  }
6550
6701
  });
6551
- function Pc({ 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 }) {
6552
- let S = V(null), C = V(null), w = V(null), T = V(null), [E, D] = Wr(Nc, { kind: "none" }), [O, k] = z(null), { onPointerDown: A, isDragging: ee } = Ns({
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({
6553
6704
  targetRef: S,
6554
6705
  shouldStart: (e) => !e.target?.closest("button, a, input, textarea, select"),
6555
6706
  onMove: k
6556
6707
  });
6557
- Is(S, !0);
6708
+ Gs(S, !0);
6558
6709
  let te = e.resolvedAt != null, j = at(() => e.comments.filter((e) => !e.deleted), [e.comments]);
6559
6710
  B(() => {
6560
6711
  if (E.kind === "none" || E.kind === "editing") return;
@@ -6605,8 +6756,8 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6605
6756
  anchorText: e.anchorText
6606
6757
  });
6607
6758
  return {
6608
- left: Rc(t.pageX - window.scrollX + 16, 12, window.innerWidth - 320 - 12),
6609
- top: Rc(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)
6610
6761
  };
6611
6762
  }, [
6612
6763
  e.anchorX,
@@ -6647,7 +6798,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6647
6798
  class: Z("markup-icon-btn", E.kind === "thread-menu" && "is-open"),
6648
6799
  title: "More options",
6649
6800
  onClick: () => D({ type: "toggle-thread-menu" }),
6650
- children: /* @__PURE__ */ Q(ds, { size: 16 })
6801
+ children: /* @__PURE__ */ Q(bs, { size: 16 })
6651
6802
  }), E.kind === "thread-menu" ? /* @__PURE__ */ Q("div", {
6652
6803
  class: "markup-thread-menu-list",
6653
6804
  children: [/* @__PURE__ */ Q("button", {
@@ -6675,14 +6826,14 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6675
6826
  title: "Mark as resolved",
6676
6827
  disabled: c,
6677
6828
  onClick: b,
6678
- children: /* @__PURE__ */ Q(fs, { size: 16 })
6829
+ children: /* @__PURE__ */ Q(xs, { size: 16 })
6679
6830
  }) : null,
6680
6831
  /* @__PURE__ */ Q("button", {
6681
6832
  type: "button",
6682
6833
  class: "markup-icon-btn",
6683
6834
  title: "Close thread",
6684
6835
  onClick: h,
6685
- children: /* @__PURE__ */ Q(ls, { size: 16 })
6836
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
6686
6837
  })
6687
6838
  ]
6688
6839
  })]
@@ -6695,10 +6846,10 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6695
6846
  return /* @__PURE__ */ Q("li", {
6696
6847
  class: Z("markup-comment", M.current != null && t.createdAt > M.current && "is-new"),
6697
6848
  children: [
6698
- /* @__PURE__ */ Q(zc, {
6849
+ /* @__PURE__ */ Q(tl, {
6699
6850
  name: t.authorName,
6700
6851
  image: t.authorImage,
6701
- tone: Vc(t.authorClientId ?? t.authorName)
6852
+ tone: rl(t.authorClientId ?? t.authorName)
6702
6853
  }),
6703
6854
  /* @__PURE__ */ Q("div", {
6704
6855
  class: "markup-comment-meta",
@@ -6712,23 +6863,23 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6712
6863
  role: "img",
6713
6864
  "aria-label": "Written by an AI agent",
6714
6865
  title: "Written by an AI agent",
6715
- children: /* @__PURE__ */ Q(ks, { size: 11 })
6866
+ children: /* @__PURE__ */ Q(Rs, { size: 11 })
6716
6867
  }) : null,
6717
6868
  /* @__PURE__ */ Q("time", {
6718
6869
  class: "markup-comment-time",
6719
6870
  datetime: new Date(t.createdAt).toISOString(),
6720
- title: Uc(t.createdAt),
6721
- children: Hc(t.createdAt)
6871
+ title: al(t.createdAt),
6872
+ children: il(t.createdAt)
6722
6873
  }),
6723
6874
  t.editedAt == null ? null : /* @__PURE__ */ Q("time", {
6724
6875
  class: "markup-comment-edited",
6725
6876
  datetime: new Date(t.editedAt).toISOString(),
6726
- title: Uc(t.editedAt),
6877
+ title: al(t.editedAt),
6727
6878
  children: "edited"
6728
6879
  }),
6729
6880
  /* @__PURE__ */ Q("div", {
6730
6881
  class: "markup-thread-actions",
6731
- children: [!te && !l ? /* @__PURE__ */ Q(Fc, {
6882
+ children: [!te && !l ? /* @__PURE__ */ Q(Zc, {
6732
6883
  comment: t,
6733
6884
  pickerOpen: m,
6734
6885
  pickerDirection: h,
@@ -6796,7 +6947,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6796
6947
  direction: a < i ? "up" : "down"
6797
6948
  });
6798
6949
  },
6799
- children: /* @__PURE__ */ Q(ds, { size: 16 })
6950
+ children: /* @__PURE__ */ Q(bs, { size: 16 })
6800
6951
  }), f ? /* @__PURE__ */ Q("div", {
6801
6952
  class: "markup-thread-menu-list",
6802
6953
  children: [o ? /* @__PURE__ */ Q("button", {
@@ -6836,7 +6987,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6836
6987
  await _(t._id, n), D({ type: "dismiss" });
6837
6988
  } catch {}
6838
6989
  },
6839
- children: [/* @__PURE__ */ Q(dc, {
6990
+ children: [/* @__PURE__ */ Q(Dc, {
6840
6991
  class: "markup-comment-edit-input",
6841
6992
  label: "Edit comment",
6842
6993
  value: E.draft,
@@ -6862,7 +7013,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6862
7013
  children: "Save"
6863
7014
  })]
6864
7015
  })]
6865
- }) : /* @__PURE__ */ Q(ac, {
7016
+ }) : /* @__PURE__ */ Q(xc, {
6866
7017
  body: t.body,
6867
7018
  mentions: t.mentions
6868
7019
  }),
@@ -6875,7 +7026,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6875
7026
  alt: "Screenshot"
6876
7027
  })
6877
7028
  }) : null,
6878
- !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Ic, {
7029
+ !l && t.reactions.length > 0 ? /* @__PURE__ */ Q(Qc, {
6879
7030
  comment: t,
6880
7031
  isResolved: te,
6881
7032
  onToggle: (e) => y(t._id, e)
@@ -6895,7 +7046,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6895
7046
  onClick: (e) => {
6896
7047
  e.stopPropagation(), w.current?.close();
6897
7048
  },
6898
- children: /* @__PURE__ */ Q(ls, { size: 16 })
7049
+ children: /* @__PURE__ */ Q(vs, { size: 16 })
6899
7050
  }), /* @__PURE__ */ Q("img", {
6900
7051
  class: "markup-lightbox-img",
6901
7052
  src: e.screenshotUrl,
@@ -6918,7 +7069,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6918
7069
  children: "team"
6919
7070
  }) : null
6920
7071
  ]
6921
- }), /* @__PURE__ */ Q(pc, {
7072
+ }), /* @__PURE__ */ Q(kc, {
6922
7073
  label: "Reply",
6923
7074
  placeholder: "Write a reply…",
6924
7075
  submitLabel: "Reply",
@@ -6928,7 +7079,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6928
7079
  onSubmit: g,
6929
7080
  members: d
6930
7081
  })]
6931
- }) : /* @__PURE__ */ Q(Rs, {
7082
+ }) : /* @__PURE__ */ Q(qs, {
6932
7083
  mode: n,
6933
7084
  isPending: c,
6934
7085
  isConnecting: a,
@@ -6941,7 +7092,7 @@ function Pc({ thread: e, authorName: t, authorPromptMode: n, currentClientId: r,
6941
7092
  ]
6942
7093
  });
6943
7094
  }
6944
- function Fc({ 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 }) {
6945
7096
  return /* @__PURE__ */ Q("div", {
6946
7097
  class: Z("markup-reaction-picker-wrap", t && "is-open", t && n === "up" && "is-up", r && "is-side"),
6947
7098
  ref: i,
@@ -6951,11 +7102,11 @@ function Fc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
6951
7102
  title: "Add reaction",
6952
7103
  "aria-label": "Add reaction",
6953
7104
  onClick: a,
6954
- children: /* @__PURE__ */ Q(hs, { size: 16 })
7105
+ children: /* @__PURE__ */ Q(ws, { size: 16 })
6955
7106
  }), t ? /* @__PURE__ */ Q("div", {
6956
7107
  class: "markup-reaction-picker",
6957
7108
  role: "menu",
6958
- children: Mc.map((t) => /* @__PURE__ */ Q("button", {
7109
+ children: Jc.map((t) => /* @__PURE__ */ Q("button", {
6959
7110
  type: "button",
6960
7111
  role: "menuitem",
6961
7112
  class: Z("markup-reaction-picker-item", (e.reactions.find((e) => e.emoji === t)?.mine ?? !1) && "is-mine"),
@@ -6965,11 +7116,11 @@ function Fc({ comment: e, pickerOpen: t, pickerDirection: n, pickerSide: r, pick
6965
7116
  }) : null]
6966
7117
  });
6967
7118
  }
6968
- function Ic({ comment: e, isResolved: t, onToggle: n }) {
7119
+ function Qc({ comment: e, isResolved: t, onToggle: n }) {
6969
7120
  return /* @__PURE__ */ Q("div", {
6970
7121
  class: "markup-reactions",
6971
7122
  children: e.reactions.map((e) => {
6972
- let r = Lc(e.reactors, e.mine, e.count, e.emoji);
7123
+ let r = $c(e.reactors, e.mine, e.count, e.emoji);
6973
7124
  return /* @__PURE__ */ Q("button", {
6974
7125
  type: "button",
6975
7126
  class: Z("markup-reaction-chip", e.mine && "is-mine"),
@@ -6990,14 +7141,14 @@ function Ic({ comment: e, isResolved: t, onToggle: n }) {
6990
7141
  })
6991
7142
  });
6992
7143
  }
6993
- function Lc(e, t, n, r) {
7144
+ function $c(e, t, n, r) {
6994
7145
  let i = e.slice(), a = i.length + +!!t, o = Math.max(0, n - a);
6995
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}`;
6996
7147
  }
6997
- function Rc(e, t, n) {
7148
+ function el(e, t, n) {
6998
7149
  return Math.max(t, Math.min(n, e));
6999
7150
  }
7000
- function zc({ name: e, image: t, tone: n }) {
7151
+ function tl({ name: e, image: t, tone: n }) {
7001
7152
  let [r, i] = z(null);
7002
7153
  return /* @__PURE__ */ Q("span", {
7003
7154
  class: "markup-comment-avatar",
@@ -7013,11 +7164,11 @@ function zc({ name: e, image: t, tone: n }) {
7013
7164
  onError: () => i(t)
7014
7165
  }) : /* @__PURE__ */ Q("span", {
7015
7166
  class: "markup-avatar-initials",
7016
- children: Bc(e)
7167
+ children: nl(e)
7017
7168
  })
7018
7169
  });
7019
7170
  }
7020
- function Bc(e) {
7171
+ function nl(e) {
7021
7172
  let t = e.trim();
7022
7173
  if (!t) return "??";
7023
7174
  let n = t.split(/\s+/).filter(Boolean), r = n[0] ?? "";
@@ -7025,12 +7176,12 @@ function Bc(e) {
7025
7176
  let i = n[n.length - 1] ?? "";
7026
7177
  return ((r[0] ?? "") + (i[0] ?? "")).toUpperCase();
7027
7178
  }
7028
- function Vc(e) {
7179
+ function rl(e) {
7029
7180
  let t = 0;
7030
7181
  for (let n = 0; n < e.length; n++) t = t * 31 + e.charCodeAt(n) | 0;
7031
7182
  return Math.abs(t) % 5 + 1;
7032
7183
  }
7033
- function Hc(e) {
7184
+ function il(e) {
7034
7185
  let t = Date.now() - e, n = Math.floor(t / 1e3);
7035
7186
  if (n < 60) return "just now";
7036
7187
  let r = Math.floor(n / 60);
@@ -7047,7 +7198,7 @@ function Hc(e) {
7047
7198
  year: "numeric"
7048
7199
  });
7049
7200
  }
7050
- function Uc(e) {
7201
+ function al(e) {
7051
7202
  return new Date(e).toLocaleDateString([], {
7052
7203
  month: "long",
7053
7204
  day: "numeric",
@@ -7058,7 +7209,7 @@ function Uc(e) {
7058
7209
  }
7059
7210
  //#endregion
7060
7211
  //#region src/runtime/ui/toolbar.tsx
7061
- function Wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right", unreadCount: i = 0, showInbox: a = !1, onOpenInbox: o, inboxOpen: s = !1, pinsVisible: c = !0, onTogglePins: l, identityButton: u, overflowButton: d }) {
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 }) {
7062
7213
  let f = V(0);
7063
7214
  i > 0 && (f.current = i);
7064
7215
  let p = r === "bottom-left" ? "markup-toolbar-left" : r === "bottom-center" ? "markup-toolbar-center" : "markup-toolbar-right";
@@ -7082,7 +7233,7 @@ function Wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7082
7233
  title: e ? "Cancel placing markup" : "Leave a markup",
7083
7234
  "aria-pressed": e,
7084
7235
  onClick: m,
7085
- children: Q(e ? ls : gs, { size: 16 })
7236
+ children: Q(e ? vs : Ts, { size: 16 })
7086
7237
  }),
7087
7238
  a ? /* @__PURE__ */ Q("button", {
7088
7239
  type: "button",
@@ -7094,7 +7245,7 @@ function Wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7094
7245
  onClick: (e) => {
7095
7246
  e.preventDefault(), e.stopPropagation(), o?.();
7096
7247
  },
7097
- children: [/* @__PURE__ */ Q(_s, { size: 16 }), /* @__PURE__ */ Q("span", {
7248
+ children: [/* @__PURE__ */ Q(Es, { size: 16 }), /* @__PURE__ */ Q("span", {
7098
7249
  class: "markup-tb-badge",
7099
7250
  "data-unread": i > 0 ? "true" : "false",
7100
7251
  "aria-hidden": "true",
@@ -7114,7 +7265,7 @@ function Wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7114
7265
  onClick: (e) => {
7115
7266
  e.preventDefault(), e.stopPropagation(), l();
7116
7267
  },
7117
- children: Q(c ? vs : ys, { size: 16 })
7268
+ children: Q(c ? Ds : Os, { size: 16 })
7118
7269
  })] }) : null,
7119
7270
  u || d ? /* @__PURE__ */ Q("div", {
7120
7271
  class: "markup-tb-sep",
@@ -7128,14 +7279,14 @@ function Wc({ isActive: e, onToggle: t, onHide: n, position: r = "bottom-right",
7128
7279
  "data-kind": "overflow",
7129
7280
  "aria-label": "More options",
7130
7281
  disabled: !0,
7131
- children: /* @__PURE__ */ Q(bs, { size: 16 })
7282
+ children: /* @__PURE__ */ Q(ks, { size: 16 })
7132
7283
  })
7133
7284
  ]
7134
7285
  });
7135
7286
  }
7136
7287
  //#endregion
7137
7288
  //#region src/runtime/ui/app.tsx
7138
- function Gc(e) {
7289
+ function sl(e) {
7139
7290
  let t = {
7140
7291
  clientId: `markup_user_${e.identity.id}`,
7141
7292
  name: e.identity.name,
@@ -7161,14 +7312,14 @@ function Gc(e) {
7161
7312
  } : {}
7162
7313
  };
7163
7314
  }
7164
- function Kc() {
7315
+ function cl() {
7165
7316
  let e = document.activeElement;
7166
7317
  for (; e && e.shadowRoot && e.shadowRoot.activeElement;) e = e.shadowRoot.activeElement;
7167
7318
  if (!e) return !1;
7168
7319
  let t = e.tagName;
7169
7320
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable;
7170
7321
  }
7171
- var qc = Ur({
7322
+ var ll = Ur({
7172
7323
  visible: {
7173
7324
  "hide-with-toast": () => ({ kind: "hidden-with-toast" }),
7174
7325
  toggle: () => ({ kind: "hidden" })
@@ -7179,26 +7330,26 @@ var qc = Ur({
7179
7330
  },
7180
7331
  hidden: { toggle: () => ({ kind: "visible" }) }
7181
7332
  });
7182
- function Jc(e) {
7333
+ function ul(e) {
7183
7334
  return $i(e), e;
7184
7335
  }
7185
- var Yc = Ur({
7336
+ var dl = Ur({
7186
7337
  unresolved: {
7187
- "mint-success": (e, t) => Jc({
7338
+ "mint-success": (e, t) => ul({
7188
7339
  kind: "anon",
7189
7340
  identity: t.identity
7190
7341
  }),
7191
- "signed-in": (e, t) => Jc({
7342
+ "signed-in": (e, t) => ul({
7192
7343
  kind: "verified",
7193
7344
  identity: t.identity
7194
7345
  })
7195
7346
  },
7196
7347
  anon: {
7197
- "signed-in": (e, t) => Jc({
7348
+ "signed-in": (e, t) => ul({
7198
7349
  kind: "verified",
7199
7350
  identity: t.identity
7200
7351
  }),
7201
- "author-set": (e, t) => Jc({
7352
+ "author-set": (e, t) => ul({
7202
7353
  kind: "anon",
7203
7354
  identity: {
7204
7355
  ...e.identity,
@@ -7206,35 +7357,35 @@ var Yc = Ur({
7206
7357
  email: t.email
7207
7358
  }
7208
7359
  }),
7209
- "forget-me": () => Jc({ kind: "unresolved" })
7360
+ "forget-me": () => ul({ kind: "unresolved" })
7210
7361
  },
7211
7362
  verified: {
7212
- "signed-in": (e, t) => Jc({
7363
+ "signed-in": (e, t) => ul({
7213
7364
  kind: "verified",
7214
7365
  identity: t.identity
7215
7366
  }),
7216
- unauthorized: (e) => Jc({
7367
+ unauthorized: (e) => ul({
7217
7368
  kind: "recovering",
7218
7369
  preserved: {
7219
7370
  name: e.identity.name,
7220
7371
  email: e.identity.email
7221
7372
  }
7222
7373
  }),
7223
- "signed-out": () => Jc({ kind: "unresolved" })
7374
+ "signed-out": () => ul({ kind: "unresolved" })
7224
7375
  },
7225
7376
  recovering: {
7226
- "mint-success": (e, t) => Jc({
7377
+ "mint-success": (e, t) => ul({
7227
7378
  kind: "anon",
7228
7379
  identity: t.identity
7229
7380
  }),
7230
- "signed-in": (e, t) => Jc({
7381
+ "signed-in": (e, t) => ul({
7231
7382
  kind: "verified",
7232
7383
  identity: t.identity
7233
7384
  })
7234
7385
  }
7235
7386
  });
7236
- function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r, dashboardUrl: i }) {
7237
- let [a, o] = z(fa), [s, c] = z([]), [l, u] = z(!1), d = at(() => Qi(), []), [f, p] = Wr(Yc, 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);
7238
7389
  B(() => {
7239
7390
  let n = !1;
7240
7391
  return Ri(e, t).then((e) => {
@@ -7244,7 +7395,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7244
7395
  };
7245
7396
  }, [e, t]);
7246
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);
7247
- D.current = f, as(f, e, t, (e) => p({
7398
+ D.current = f, ms(f, e, t, (e) => p({
7248
7399
  type: "signed-in",
7249
7400
  identity: e
7250
7401
  }), () => p({ type: "unauthorized" }));
@@ -7290,18 +7441,18 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7290
7441
  }).finally(() => {
7291
7442
  ae(!1);
7292
7443
  });
7293
- }, [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(qc, { 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);
7294
7445
  B(() => {
7295
- Ie(null);
7446
+ Le(null);
7296
7447
  }, [f.kind, Ne]);
7297
- let Le = Pi(Pe, f.kind), Re = Fi({
7448
+ let Re = Pi(Pe, f.kind), ze = Fi({
7298
7449
  access: Pe,
7299
7450
  identityKind: f.kind,
7300
7451
  hasAuthorName: je != null,
7301
- refusal: Fe
7302
- }), ze = H((e) => {
7452
+ refusal: Ie
7453
+ }), Be = H((e) => {
7303
7454
  let t = Ii(e);
7304
- throw t && Ie(t), e;
7455
+ throw t && Le(t), e;
7305
7456
  }, []);
7306
7457
  B(() => {
7307
7458
  if (f.kind !== "unresolved" && f.kind !== "recovering") return;
@@ -7332,17 +7483,17 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7332
7483
  p,
7333
7484
  d
7334
7485
  ]);
7335
- let Be = ts(O), [Ve, He] = z(null);
7486
+ let Ve = us(O), [He, Ue] = z(null);
7336
7487
  B(() => {
7337
7488
  let t = new Hr(e.replace(/\.convex\.site(\/.*)?$/, ".convex.cloud"));
7338
- return He(t), () => {
7339
- t.close(), He((e) => e === t ? null : e);
7489
+ return Ue(t), () => {
7490
+ t.close(), Ue((e) => e === t ? null : e);
7340
7491
  };
7341
7492
  }, [e]);
7342
- let Ue = V(!1);
7493
+ let We = V(!1);
7343
7494
  B(() => {
7344
- if (!(!Ve || !Be)) return P(), ve(), Ve.onUpdate(Nn("widget/queries:subscribeThreadsForRoute"), {
7345
- subscriptionToken: Be,
7495
+ if (!(!He || !Ve)) return P(), ve(), He.onUpdate(Nn("widget/queries:subscribeThreadsForRoute"), {
7496
+ subscriptionToken: Ve,
7346
7497
  route: a,
7347
7498
  viewerClientId: Ne,
7348
7499
  includeResolved: S
@@ -7350,37 +7501,37 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7350
7501
  e !== void 0 && (c(e), u(!0));
7351
7502
  });
7352
7503
  }, [
7504
+ He,
7353
7505
  Ve,
7354
- Be,
7355
7506
  a,
7356
7507
  Ne,
7357
7508
  S,
7358
7509
  P,
7359
7510
  ve
7360
7511
  ]), B(() => {
7361
- 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) => {
7362
7513
  let t = e?.commentAccess;
7363
- I(t === "members" ? "members" : Ni);
7514
+ Fe(t === "members" ? "members" : Ni);
7364
7515
  });
7365
- }, [Ve, Be]), B(() => {
7516
+ }, [He, Ve]), B(() => {
7366
7517
  if (f.kind !== "verified") {
7367
7518
  M(0);
7368
7519
  return;
7369
7520
  }
7370
- 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) => {
7371
7522
  e !== void 0 && M(e.count);
7372
7523
  });
7373
7524
  }, [
7525
+ He,
7374
7526
  Ve,
7375
- Be,
7376
7527
  f.kind
7377
7528
  ]), B(() => {
7378
- if (Ue.current || !l) return;
7529
+ if (We.current || !l) return;
7379
7530
  let e = pa();
7380
7531
  e !== null && (s.find((t) => t._id === e) && A({
7381
7532
  kind: "thread",
7382
7533
  threadId: e
7383
- }), ha()), Ue.current = !0;
7534
+ }), ha()), We.current = !0;
7384
7535
  }, [s, l]), B(() => Gi(() => o(fa())), []), B(() => {
7385
7536
  function e(e) {
7386
7537
  e.key === "." && (e.metaKey || e.ctrlKey) && (e.altKey || e.shiftKey || (e.preventDefault(), Ee({ type: "toggle" })));
@@ -7408,20 +7559,20 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7408
7559
  window.removeEventListener("scroll", t, { capture: !0 }), window.removeEventListener("resize", t), n.disconnect(), e != null && cancelAnimationFrame(e);
7409
7560
  };
7410
7561
  }, []);
7411
- let We = H(() => {
7562
+ let Ge = H(() => {
7412
7563
  P(), ve(), xe("comment_started"), A({ kind: "placing" });
7413
7564
  }, [P, ve]);
7414
7565
  B(() => {
7415
7566
  function e(e) {
7416
- e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || k.kind === "idle" && (De || Kc() || (e.preventDefault(), We())));
7567
+ e.key === "c" && (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey || k.kind === "idle" && (De || cl() || (e.preventDefault(), Ge())));
7417
7568
  }
7418
7569
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
7419
7570
  }, [
7420
7571
  k.kind,
7421
7572
  De,
7422
- We
7573
+ Ge
7423
7574
  ]);
7424
- let Ge = H(() => {
7575
+ let I = H(() => {
7425
7576
  A({ kind: "idle" }), P(), ve();
7426
7577
  }, [P, ve]), L = V(0), Ke = H((e, t, n) => {
7427
7578
  let i = t + window.scrollX, a = n + window.scrollY, o = ++L.current;
@@ -7456,7 +7607,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7456
7607
  strictScrub: r?.strictScrub,
7457
7608
  redactSelector: r?.redactSelector
7458
7609
  };
7459
- Ko(s, {
7610
+ ts(s, {
7460
7611
  x: t,
7461
7612
  y: n
7462
7613
  }, c).then((e) => {
@@ -7477,7 +7628,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7477
7628
  });
7478
7629
  }, [p]), Je = fe.isPending, Ye = H(async () => {
7479
7630
  xe("sign_in_started"), await ge(async () => {
7480
- let n = Gc(await sa({
7631
+ let n = sl(await sa({
7481
7632
  apiUrl: e,
7482
7633
  apiKey: t,
7483
7634
  useCookies: m === !0
@@ -7500,7 +7651,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7500
7651
  n && await N(async () => {
7501
7652
  let r;
7502
7653
  if (t && k.screenshot) {
7503
- let { uploadUrl: e } = await O.getScreenshotUploadUrl().catch(ze), t;
7654
+ let { uploadUrl: e } = await O.getScreenshotUploadUrl().catch(Be), t;
7504
7655
  try {
7505
7656
  t = await fetch(e, {
7506
7657
  method: "POST",
@@ -7532,7 +7683,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7532
7683
  body: e,
7533
7684
  mentions: i.length > 0 ? i : void 0,
7534
7685
  screenshotStorageId: r
7535
- }).catch(ze);
7686
+ }).catch(Be);
7536
7687
  c((e) => [...e, o.thread]), xe("comment_submitted", {
7537
7688
  hasScreenshot: r != null,
7538
7689
  hasMentions: i.length > 0
@@ -7545,7 +7696,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7545
7696
  O,
7546
7697
  f,
7547
7698
  k,
7548
- ze,
7699
+ Be,
7549
7700
  a,
7550
7701
  N
7551
7702
  ]), Xe = H(async () => {
@@ -7597,14 +7748,14 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7597
7748
  authorName: t.name,
7598
7749
  authorEmail: t.email,
7599
7750
  mentions: r.length > 0 ? r : void 0
7600
- }).catch(ze);
7751
+ }).catch(Be);
7601
7752
  c((e) => e.map((e) => e._id === n ? i.thread : e)), xe("reply_submitted", { hasMentions: r.length > 0 });
7602
7753
  });
7603
7754
  }, [
7604
7755
  O,
7605
7756
  f,
7606
7757
  k,
7607
- ze,
7758
+ Be,
7608
7759
  N
7609
7760
  ]), tt = H(async (e, t) => {
7610
7761
  if (k.kind !== "thread" || f.kind !== "anon" && f.kind !== "verified") return;
@@ -7635,8 +7786,8 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7635
7786
  N
7636
7787
  ]), rt = H(async (e, t) => {
7637
7788
  if (k.kind !== "thread") return;
7638
- if (!Le) {
7639
- Ie("sign_in_required");
7789
+ if (!Re) {
7790
+ Le("sign_in_required");
7640
7791
  return;
7641
7792
  }
7642
7793
  let n = na(f);
@@ -7646,15 +7797,15 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7646
7797
  let i = await O.toggleReaction(e, {
7647
7798
  emoji: t,
7648
7799
  authorName: n.name
7649
- }).catch(ze);
7800
+ }).catch(Be);
7650
7801
  c((e) => e.map((e) => e._id === r ? i.thread : e)), xe("reaction_added");
7651
7802
  });
7652
7803
  }, [
7653
7804
  O,
7654
- Le,
7805
+ Re,
7655
7806
  f,
7656
7807
  k,
7657
- ze,
7808
+ Be,
7658
7809
  _e
7659
7810
  ]), [it, ot] = z(!1), st = H(async () => {
7660
7811
  await ye(async () => {
@@ -7732,11 +7883,11 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7732
7883
  n.disconnect(), e != null && cancelAnimationFrame(e);
7733
7884
  };
7734
7885
  }, [mt]), B(() => {
7735
- k.kind === "thread" && dt == null && Ge();
7886
+ k.kind === "thread" && dt == null && I();
7736
7887
  }, [
7737
7888
  k,
7738
7889
  dt,
7739
- Ge
7890
+ I
7740
7891
  ]), /* @__PURE__ */ Q("div", {
7741
7892
  class: "markup-root",
7742
7893
  ref: Ae,
@@ -7745,7 +7896,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7745
7896
  class: "markup-pins-layer",
7746
7897
  children: [!De && v ? U.map(({ thread: e, point: t }) => {
7747
7898
  let n = k.kind === "thread" && k.threadId === e._id, r = e.comments.reduce((e, t) => e + +!t.deleted, 0);
7748
- return /* @__PURE__ */ Q(Tc, {
7899
+ return /* @__PURE__ */ Q(Vc, {
7749
7900
  pageX: t.pageX,
7750
7901
  pageY: t.pageY,
7751
7902
  count: r,
@@ -7759,19 +7910,19 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7759
7910
  });
7760
7911
  }
7761
7912
  }, e._id);
7762
- }) : null, k.kind === "composing-new" ? /* @__PURE__ */ Q(Ec, {
7913
+ }) : null, k.kind === "composing-new" ? /* @__PURE__ */ Q(Hc, {
7763
7914
  pageX: k.pageX,
7764
7915
  pageY: k.pageY
7765
7916
  }) : null]
7766
7917
  }),
7767
- k.kind === "placing" ? /* @__PURE__ */ Q(Dc, {
7918
+ k.kind === "placing" ? /* @__PURE__ */ Q(Uc, {
7768
7919
  onPlace: Ke,
7769
- onCancel: Ge
7920
+ onCancel: I
7770
7921
  }) : null,
7771
- k.kind === "thread" && dt ? /* @__PURE__ */ Q(Pc, {
7922
+ k.kind === "thread" && dt ? /* @__PURE__ */ Q(Xc, {
7772
7923
  thread: dt,
7773
7924
  authorName: je,
7774
- authorPromptMode: Re,
7925
+ authorPromptMode: ze,
7775
7926
  currentClientId: Ne ?? null,
7776
7927
  isVerified: Me,
7777
7928
  isIdentityResolving: F,
@@ -7784,7 +7935,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7784
7935
  onAuthor: qe,
7785
7936
  onSignIn: Ye,
7786
7937
  onSignOut: ut,
7787
- onClose: Ge,
7938
+ onClose: I,
7788
7939
  onReply: et,
7789
7940
  onEditComment: tt,
7790
7941
  onDeleteComment: nt,
@@ -7792,11 +7943,11 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7792
7943
  onDelete: Xe,
7793
7944
  onResolve: Ze
7794
7945
  }, dt._id) : null,
7795
- k.kind === "composing-new" ? /* @__PURE__ */ Q(hc, {
7946
+ k.kind === "composing-new" ? /* @__PURE__ */ Q(jc, {
7796
7947
  pageX: k.pageX,
7797
7948
  pageY: k.pageY,
7798
7949
  authorName: je,
7799
- authorPromptMode: Re,
7950
+ authorPromptMode: ze,
7800
7951
  isVerified: Me,
7801
7952
  isIdentityResolving: F,
7802
7953
  isSigningIn: Je,
@@ -7812,11 +7963,11 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7812
7963
  onSignIn: Ye,
7813
7964
  onSignOut: ut,
7814
7965
  onSubmit: R,
7815
- onClose: Ge
7966
+ onClose: I
7816
7967
  }) : null,
7817
- !De || k.kind === "placing" || k.kind === "composing-new" ? /* @__PURE__ */ Q(Wc, {
7968
+ !De || k.kind === "placing" || k.kind === "composing-new" ? /* @__PURE__ */ Q(ol, {
7818
7969
  isActive: k.kind === "placing",
7819
- onToggle: () => k.kind === "placing" ? Ge() : We(),
7970
+ onToggle: () => k.kind === "placing" ? I() : Ge(),
7820
7971
  onHide: () => Ee({ type: "hide-with-toast" }),
7821
7972
  position: g,
7822
7973
  showInbox: Me,
@@ -7828,7 +7979,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7828
7979
  },
7829
7980
  pinsVisible: v,
7830
7981
  onTogglePins: () => y((e) => !e),
7831
- identityButton: /* @__PURE__ */ Q(js, {
7982
+ identityButton: /* @__PURE__ */ Q(Bs, {
7832
7983
  identity: f,
7833
7984
  position: g,
7834
7985
  isSigningIn: Je,
@@ -7839,7 +7990,7 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7839
7990
  onSignOut: ut,
7840
7991
  onForgetMe: st
7841
7992
  }),
7842
- overflowButton: /* @__PURE__ */ Q(bc, {
7993
+ overflowButton: /* @__PURE__ */ Q(Ic, {
7843
7994
  position: g,
7844
7995
  onSetPosition: _,
7845
7996
  autoCapture: b && r?.enabled !== !1,
@@ -7850,17 +8001,17 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7850
8001
  onOpenPrivacy: () => T("privacy"),
7851
8002
  onOpenShortcuts: () => T("shortcuts"),
7852
8003
  onHideForSession: () => Ee({ type: "hide-with-toast" }),
7853
- version: "1.23.0",
8004
+ version: "1.24.0",
7854
8005
  dashboardUrl: i
7855
8006
  })
7856
8007
  }) : null,
7857
- w === "inbox" && Me ? /* @__PURE__ */ Q(wc, {
8008
+ w === "inbox" && Me ? /* @__PURE__ */ Q(Bc, {
7858
8009
  kind: "inbox",
7859
8010
  label: "Inbox",
7860
8011
  position: g,
7861
8012
  ignoreToolbarKind: "inbox",
7862
8013
  onClose: E,
7863
- children: /* @__PURE__ */ Q(_c, {
8014
+ children: /* @__PURE__ */ Q(Nc, {
7864
8015
  items: ne,
7865
8016
  isLoading: ie,
7866
8017
  error: oe,
@@ -7872,12 +8023,12 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7872
8023
  onMarkAllRead: $e
7873
8024
  })
7874
8025
  }) : null,
7875
- w === "privacy" ? /* @__PURE__ */ Q(wc, {
8026
+ w === "privacy" ? /* @__PURE__ */ Q(Bc, {
7876
8027
  kind: "privacy",
7877
8028
  label: "Privacy and data",
7878
8029
  position: g,
7879
8030
  onClose: E,
7880
- children: /* @__PURE__ */ Q(kc, {
8031
+ children: /* @__PURE__ */ Q(Gc, {
7881
8032
  identity: f,
7882
8033
  apiUrl: e,
7883
8034
  commentAccess: Pe,
@@ -7889,21 +8040,21 @@ function Xc({ apiUrl: e, apiKey: t, position: n = "bottom-right", screenshots: r
7889
8040
  onClose: E
7890
8041
  })
7891
8042
  }) : null,
7892
- w === "shortcuts" ? /* @__PURE__ */ Q(wc, {
8043
+ w === "shortcuts" ? /* @__PURE__ */ Q(Bc, {
7893
8044
  kind: "shortcuts",
7894
8045
  label: "Keyboard shortcuts",
7895
8046
  position: g,
7896
8047
  onClose: E,
7897
- children: /* @__PURE__ */ Q(jc, { onClose: E })
8048
+ children: /* @__PURE__ */ Q(qc, { onClose: E })
7898
8049
  }) : null,
7899
- Te.kind === "hidden-with-toast" ? /* @__PURE__ */ Q(Zc, { position: g }) : null,
7900
- it ? /* @__PURE__ */ Q(Qc, { position: g }) : null,
7901
- ct ? /* @__PURE__ */ Q($c, { 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
7902
8053
  ]
7903
8054
  });
7904
8055
  }
7905
- function Zc({ position: e }) {
7906
- let { mod: t } = os();
8056
+ function pl({ position: e }) {
8057
+ let { mod: t } = hs();
7907
8058
  return /* @__PURE__ */ Q("div", {
7908
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"),
7909
8060
  role: "status",
@@ -7922,7 +8073,7 @@ function Zc({ position: e }) {
7922
8073
  ]
7923
8074
  });
7924
8075
  }
7925
- function Qc({ position: e }) {
8076
+ function ml({ position: e }) {
7926
8077
  return /* @__PURE__ */ Q("div", {
7927
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"),
7928
8079
  role: "status",
@@ -7930,7 +8081,7 @@ function Qc({ position: e }) {
7930
8081
  children: "Forgotten on this site — your name and email were cleared."
7931
8082
  });
7932
8083
  }
7933
- function $c({ position: e }) {
8084
+ function hl({ position: e }) {
7934
8085
  return /* @__PURE__ */ Q("div", {
7935
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"),
7936
8087
  role: "status",
@@ -7940,52 +8091,52 @@ function $c({ position: e }) {
7940
8091
  }
7941
8092
  //#endregion
7942
8093
  //#region src/runtime/mount.tsx
7943
- function el(e, t) {
7944
- e.style.position = "fixed", e.style.inset = "0", e.style.zIndex = "2147483647", e.style.pointerEvents = "none", ze(e, t.theme ?? "auto");
7945
- 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");
7946
8097
  i.textContent = fe, r.appendChild(i);
7947
8098
  let a = document.createElement("div");
7948
8099
  a.className = "markup-shadow-root", r.appendChild(a), Me({
7949
8100
  apiUrl: t.apiUrl,
7950
8101
  apiKey: t.apiKey,
7951
- widgetVersion: "1.23.0"
8102
+ widgetVersion: "1.24.0"
7952
8103
  }), be(t.analytics === !1 ? null : {
7953
8104
  apiUrl: t.apiUrl,
7954
8105
  apiKey: t.apiKey,
7955
- widgetVersion: "1.23.0"
8106
+ widgetVersion: "1.24.0"
7956
8107
  }), xe("widget_loaded");
7957
8108
  let { theme: o, analytics: s, ...c } = t;
7958
8109
  return de(/* @__PURE__ */ Q(we, {
7959
8110
  onError: (e) => F(e, { context: "render" }),
7960
- children: /* @__PURE__ */ Q(Xc, { ...c })
8111
+ children: /* @__PURE__ */ Q(fl, { ...c })
7961
8112
  }), a), () => {
7962
8113
  n(), Me(null), be(null), de(null, a);
7963
8114
  };
7964
8115
  }
7965
8116
  //#endregion
7966
8117
  //#region src/widget.ts
7967
- var tl = null, nl = null, rl = null, il = !1;
7968
- function al(e) {
8118
+ var _l = null, vl = null, yl = null, bl = !1;
8119
+ function xl(e) {
7969
8120
  if (!e.apiUrl || !e.apiKey) return console.warn("[markup] init() requires both apiUrl and apiKey, so the widget was not mounted"), () => {};
7970
- e.fab != null && !il && (il = !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.")), ol();
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();
7971
8122
  let t = () => {
7972
- if (rl = null, !document.body) return;
8123
+ if (yl = null, !document.body) return;
7973
8124
  let t = document.createElement("div");
7974
- t.id = "markup-widget", document.body.appendChild(t), nl = t, tl = el(t, e);
8125
+ t.id = "markup-widget", document.body.appendChild(t), vl = t, _l = gl(t, e);
7975
8126
  };
7976
8127
  if (document.readyState === "loading" || !document.body) {
7977
8128
  let e = () => t();
7978
- rl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
8129
+ yl = () => document.removeEventListener("DOMContentLoaded", e), document.addEventListener("DOMContentLoaded", e, { once: !0 });
7979
8130
  } else t();
7980
- return ol;
8131
+ return Sl;
7981
8132
  }
7982
- function ol() {
7983
- rl &&= (rl(), null), tl &&= (tl(), null), nl?.parentNode && nl.parentNode.removeChild(nl), nl = null;
8133
+ function Sl() {
8134
+ yl &&= (yl(), null), _l &&= (_l(), null), vl?.parentNode && vl.parentNode.removeChild(vl), vl = null;
7984
8135
  }
7985
8136
  if (typeof document < "u") {
7986
8137
  let e = document.currentScript ?? document.querySelector("script[data-markup-widget=\"true\"]"), t = e?.dataset.apiUrl, n = e?.dataset.apiKey;
7987
8138
  if (t && n) {
7988
- let r = e?.dataset.position, i = e?.dataset.theme, a = e?.dataset.fab, o = e?.dataset.dashboardUrl, s = e?.dataset.analytics !== "false", c = () => al({
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({
7989
8140
  apiUrl: t,
7990
8141
  apiKey: n,
7991
8142
  position: r,
@@ -7998,6 +8149,6 @@ if (typeof document < "u") {
7998
8149
  }
7999
8150
  }
8000
8151
  //#endregion
8001
- export { ol as destroy, al as init };
8152
+ export { Sl as destroy, xl as init };
8002
8153
 
8003
8154
  //# sourceMappingURL=widget.js.map