@makefully/notefully 0.1.38 → 0.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -66,7 +66,7 @@ With `hideLauncher: true`, call `Notefully.open()` / `Notefully.submit()` from y
66
66
 
67
67
  On open, Notefully captures the page automatically: optional `onBeforeCapture` / `capture` hooks first, then a canvas-aware DOM rasterize sized to the viewport (so absolutely positioned apps still capture). Empty results are treated as no screenshot—markup tools stay hidden and the camera **Recapture** control sits beside the mic. With a shot, **Discard** and **Recapture** sit on the far right of the edit tools. Recapture hides the dialog and tries the browser share picker (`getDisplayMedia`); if that fails or is cancelled, it falls back to the automatic path.
68
68
 
69
- Above Submit, a short disclosure explains that logs and/or diagnostic information will be sent. The list icon opens a review panel (diagnostics as whole fields/objects, plus console lines snapshotted at open). Redact toggles omit items from the report; the disclosure sentence updates when a whole section is redacted or when there are no logs.
69
+ Above Submit, kind tags and a short disclosure share a wrapping row when space allows. The disclosure explains that logs and/or diagnostic information will be sent; the list icon opens a review panel (diagnostics as whole fields/objects, plus console lines snapshotted at open). Redact toggles omit items from the report; the disclosure sentence updates when a whole section is redacted or when there are no logs.
70
70
 
71
71
  ### Hosted relay
72
72
 
@@ -1 +1 @@
1
- #notefully{all:initial;--nf-launcher-left: 16px;--nf-launcher-bottom: 16px;--nf-radius: 10px;--nf-z: 2147483000;--nf-accent: #864093;--nf-accent-text: #ffffff;--nf-accent-hot: #e83590;--nf-btn: #864093;--nf-btn-border: #382c74;--nf-btn-text: #ffffff;--nf-panel: #f7f4fb;--nf-text: #2a2140;--nf-muted: rgba(42, 33, 64, .72);--nf-input: #efe8f8;--nf-border: rgba(56, 44, 116, .18);--nf-backdrop: rgba(20, 12, 28, .55);--nf-danger: #e83590;--nf-success: #1a7a3c;--nf-fail: #c2185b;--nf-mark: #fdd341;--nf-mark-text: #2a2140;--nf-canvas-bg: #111;font-family:ui-sans-serif,system-ui,sans-serif;color:var(--nf-text)}#notefully[data-theme=maker]{--nf-accent: #864093;--nf-accent-text: #ffffff;--nf-accent-hot: #e83590;--nf-btn: #864093;--nf-btn-border: #382c74;--nf-btn-text: #ffffff;--nf-panel: #f7f4fb;--nf-text: #2a2140;--nf-muted: rgba(42, 33, 64, .72);--nf-input: #efe8f8;--nf-border: rgba(56, 44, 116, .18);--nf-backdrop: rgba(20, 12, 28, .55);--nf-danger: #e83590;--nf-success: #1a7a3c;--nf-fail: #c2185b;--nf-mark: #fdd341;--nf-mark-text: #2a2140}#notefully[data-theme=all-business]{--nf-accent: #5c6570;--nf-accent-text: #ffffff;--nf-accent-hot: #8a4a4a;--nf-btn: #5c6570;--nf-btn-border: #3a4048;--nf-btn-text: #ffffff;--nf-panel: #ffffff;--nf-text: #1f1f23;--nf-muted: rgba(31, 31, 35, .68);--nf-input: #f0f0f2;--nf-border: rgba(0, 0, 0, .14);--nf-backdrop: rgba(20, 20, 24, .4);--nf-danger: #8a4a4a;--nf-success: #1f7a3a;--nf-fail: #b42318;--nf-mark: #3d6ea8;--nf-mark-text: #ffffff}#notefully[data-theme=brighter-day]{--nf-accent: #5aa8dc;--nf-accent-text: #ffffff;--nf-accent-hot: #f08ab8;--nf-btn: #5aa8dc;--nf-btn-border: #3d7eae;--nf-btn-text: #ffffff;--nf-panel: #fffdf6;--nf-text: #2a2440;--nf-muted: rgba(42, 36, 64, .68);--nf-input: #ffeef5;--nf-border: rgba(90, 168, 220, .28);--nf-backdrop: rgba(60, 40, 70, .35);--nf-danger: #f08ab8;--nf-success: #1f7a3a;--nf-fail: #c4476a;--nf-mark: #5aa8dc;--nf-mark-text: #ffffff}#notefully[data-theme=quiet-night]{--nf-accent: #c4aa5a;--nf-accent-text: #121416;--nf-accent-hot: #6e3a3a;--nf-btn: #3a4048;--nf-btn-border: #0e1012;--nf-btn-text: #d8dbe0;--nf-panel: #1c1f24;--nf-text: #d8dbe0;--nf-muted: rgba(216, 219, 224, .68);--nf-input: #262a30;--nf-border: rgba(255, 255, 255, .12);--nf-backdrop: rgba(0, 0, 0, .65);--nf-danger: #c88888;--nf-success: #7dcea0;--nf-fail: #e89898;--nf-mark: #c4aa5a;--nf-mark-text: #121416}#notefully *{box-sizing:border-box}#notefully .nf-launcher{position:fixed;left:var(--nf-launcher-left);bottom:var(--nf-launcher-bottom);z-index:var(--nf-z);width:48px;height:48px;padding:0;display:grid;place-items:center;background:var(--nf-btn);color:var(--nf-btn-text);border:1px solid var(--nf-btn-border);border-radius:999px;cursor:pointer;box-shadow:0 8px 24px #00000040}#notefully .nf-launcher-icon{width:22px;height:22px;display:block}#notefully .nf-launcher[hidden],#notefully .nf-dialog[hidden],#notefully .nf-stop-video[hidden],#notefully .nf-stage[hidden],#notefully .nf-palette[hidden],#notefully .nf-reset-crop[hidden],#notefully .nf-restore[hidden],#notefully .nf-discard-shot[hidden],#notefully .nf-recapture[hidden],#notefully .nf-privacy[hidden],#notefully .nf-privacy-panel[hidden],#notefully .nf-privacy-text[hidden],#notefully .nf-video[hidden],#notefully .nf-author[hidden]{display:none!important}#notefully .nf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--nf-z);background:var(--nf-backdrop);display:flex;align-items:center;justify-content:center;padding:24px}#notefully .nf-panel{width:min(920px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--nf-panel);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:var(--nf-radius);padding:16px;display:flex;flex-direction:column;gap:12px}#notefully .nf-panel-body{display:flex;flex-direction:column;gap:12px;min-height:0}#notefully .nf-panel-body[hidden]{display:none!important}#notefully .nf-success-msg{margin:0;text-align:center;font:700 1.35rem/1.2 ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;color:var(--nf-success)}#notefully .nf-success-msg[hidden]{display:none!important}#notefully .nf-dialog.nf-success{pointer-events:none}#notefully .nf-dialog.nf-success .nf-panel{width:auto;min-width:11rem;max-width:min(280px,90vw);max-height:none;overflow:hidden;padding:1.75rem 2.35rem;align-items:center;justify-content:center;gap:0}@media(prefers-reduced-motion:reduce){#notefully .nf-dialog.nf-success .nf-panel{transform:none!important;transition:none!important}}#notefully .nf-stage{display:flex;flex-direction:column;gap:8px}#notefully .nf-palette{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#notefully .nf-palette .nf-discard-shot{margin-left:auto}#notefully .nf-tool,#notefully .nf-reset-crop,#notefully .nf-icon-btn{background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:6px 10px;cursor:pointer;font:13px ui-sans-serif,system-ui,sans-serif}#notefully .nf-icon-btn{width:36px;height:36px;padding:0;display:grid;place-items:center;flex:0 0 36px}#notefully .nf-icon{width:18px;height:18px;display:block}#notefully .nf-tool[data-active=true],#notefully .nf-icon-btn[data-active=true]{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:inset 0 0 0 1px var(--nf-accent)}#notefully .nf-canvas{position:relative;width:min(100%,calc(48vh * var(--nf-shot-aspect, 16 / 9)));max-height:48vh;aspect-ratio:var(--nf-shot-aspect, auto);margin-inline:auto;background:var(--nf-canvas-bg);border-radius:8px;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}#notefully .nf-canvas[data-draw=true],#notefully .nf-canvas[data-draw=true] .nf-shot{cursor:crosshair}#notefully .nf-sticker{cursor:grab}#notefully .nf-sticker[data-preview=true]{cursor:crosshair}#notefully .nf-sticker.nf-arrow .nf-arrow-hit{cursor:grab}#notefully[data-grabbing=true] .nf-canvas,#notefully[data-grabbing=true] .nf-shot,#notefully[data-grabbing=true] .nf-sticker,#notefully[data-grabbing=true] .nf-sticker *{cursor:grabbing}#notefully .nf-shot{position:absolute;overflow:hidden;--nf-anno-stroke: 3px;--nf-anno-badge: 20px;--nf-anno-badge-font: 11px;--nf-anno-handle: 10px}#notefully .nf-shot img{position:absolute;display:block;max-height:none;pointer-events:none;-webkit-user-drag:none;user-drag:none}#notefully .nf-canvas video.nf-recording-preview{display:block;width:160px;height:auto;max-height:none;object-fit:contain;pointer-events:auto}#notefully .nf-sticker,#notefully .nf-crop{position:absolute;pointer-events:auto;color:var(--nf-mark)}#notefully .nf-sticker[data-selected=true]{z-index:4}#notefully .nf-sticker[data-preview=true],#notefully .nf-sticker.nf-arrow{pointer-events:none}#notefully .nf-sticker.nf-arrow .nf-handle{pointer-events:auto}#notefully .nf-rect,#notefully .nf-circle{border:var(--nf-anno-stroke) solid var(--nf-mark);background:transparent;box-sizing:border-box}#notefully .nf-circle{border-radius:50%}#notefully .nf-arrow-svg{display:block;overflow:visible;pointer-events:none}#notefully .nf-arrow-hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke}#notefully .nf-arrow-shaft{fill:none;stroke:currentColor;stroke-width:var(--nf-anno-stroke);stroke-linecap:round;pointer-events:none}#notefully .nf-arrow-head{fill:currentColor;stroke:none;pointer-events:none}#notefully .nf-badge{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);box-sizing:border-box;min-width:var(--nf-anno-badge);height:var(--nf-anno-badge);padding:0 calc(var(--nf-anno-badge-font) * .35);border-radius:50%;background:var(--nf-mark);color:var(--nf-mark-text);font:700 var(--nf-anno-badge-font)/var(--nf-anno-badge) ui-sans-serif,system-ui,sans-serif;text-align:center;pointer-events:none;z-index:4}#notefully .nf-sticker.nf-arrow .nf-badge{top:50%}#notefully .nf-handle{position:absolute;width:var(--nf-anno-handle);height:var(--nf-anno-handle);background:#fff;border:2px solid var(--nf-mark);border-radius:2px;z-index:5;box-sizing:border-box}#notefully .nf-handle[data-dir=nw]{left:-6px;top:-6px;cursor:nwse-resize}#notefully .nf-handle[data-dir=ne]{right:-6px;top:-6px;cursor:nesw-resize}#notefully .nf-handle[data-dir=sw]{left:-6px;bottom:-6px;cursor:nesw-resize}#notefully .nf-handle[data-dir=se]{right:-6px;bottom:-6px;cursor:nwse-resize}#notefully .nf-handle[data-dir=start],#notefully .nf-handle[data-dir=end]{margin:0;cursor:grab}#notefully .nf-crop{border:2px dashed var(--nf-accent);background:color-mix(in srgb,var(--nf-accent) 14%,transparent);box-shadow:0 0 0 9999px #00000073;pointer-events:none}#notefully .nf-text{width:100%;min-height:96px;resize:vertical;background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:10px;font:14px/1.4 ui-sans-serif,system-ui,sans-serif}#notefully .nf-author{width:100%;box-sizing:border-box;background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:10px;font:14px/1.4 ui-sans-serif,system-ui,sans-serif}#notefully .nf-author::placeholder{color:var(--nf-muted)}#notefully .nf-kind{display:flex;gap:8px}#notefully .nf-kind button{background:var(--nf-input);color:var(--nf-muted);border:1px solid var(--nf-border);border-radius:999px;padding:6px 12px;cursor:pointer}#notefully .nf-kind button[data-active=true]{color:var(--nf-accent-text);background:var(--nf-accent);border-color:var(--nf-accent)}#notefully .nf-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#notefully .nf-privacy{display:flex;flex-direction:column;gap:8px}#notefully .nf-privacy-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}#notefully .nf-privacy-text{color:var(--nf-muted);font:12px/1.35 ui-sans-serif,system-ui,sans-serif;text-align:right}#notefully .nf-privacy-done{background:transparent;color:var(--nf-accent);border:0;padding:0;margin:0;cursor:pointer;font:600 12px ui-sans-serif,system-ui,sans-serif;text-decoration:underline;text-underline-offset:2px}#notefully .nf-privacy-done:hover{color:var(--nf-accent-hot)}#notefully .nf-privacy-panel{display:flex;flex-direction:column;gap:8px;border:1px solid var(--nf-border);border-radius:8px;background:var(--nf-input);padding:10px}#notefully .nf-privacy-scroll{max-height:min(240px,36vh);overflow:auto;display:flex;flex-direction:column;gap:12px}#notefully .nf-privacy-section-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}#notefully .nf-privacy-section-title{margin:0;font:600 12px ui-sans-serif,system-ui,sans-serif;color:var(--nf-text)}#notefully .nf-privacy-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--nf-muted);font:11px ui-sans-serif,system-ui,sans-serif;-webkit-user-select:none;user-select:none}#notefully .nf-privacy-toggle input{margin:0;accent-color:var(--nf-accent)}#notefully .nf-privacy-rows{display:flex;flex-direction:column;gap:6px}#notefully .nf-privacy-row{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;background:var(--nf-panel);border:1px solid var(--nf-border)}#notefully .nf-privacy-row-text{min-width:0;flex:1}#notefully .nf-privacy-row-title{font:600 11px ui-sans-serif,system-ui,sans-serif;color:var(--nf-text);text-transform:capitalize}#notefully .nf-privacy-row-detail{margin-top:2px;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--nf-muted);word-break:break-word;white-space:pre-wrap}#notefully .nf-privacy-done{align-self:flex-end}#notefully .nf-actions button{border:1px solid var(--nf-border);border-radius:8px;padding:8px 12px;cursor:pointer;font:600 13px ui-sans-serif,system-ui,sans-serif;background:var(--nf-input);color:var(--nf-text)}#notefully .nf-actions .nf-icon-btn{padding:0}#notefully .nf-submit{margin-left:auto;background:var(--nf-btn)!important;color:var(--nf-btn-text)!important;border-color:var(--nf-btn-border)!important}#notefully .nf-submit:disabled{opacity:.55;cursor:wait}#notefully .nf-status{color:var(--nf-muted);font:13px ui-sans-serif,system-ui,sans-serif;min-height:1.2em}#notefully .nf-stop-video{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:calc(var(--nf-z) + 1);background:var(--nf-danger);color:#fff;border:0;border-radius:999px;padding:10px 18px;font:700 14px ui-sans-serif,system-ui,sans-serif;cursor:pointer}#notefully[data-nf-hidden-launcher] .nf-launcher{display:none!important}.nf-capture-chrome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483645;display:grid;place-items:center;pointer-events:none;background:#140c1c47;animation:nf-capture-fade .16s ease-out both}.nf-capture-chrome-pill{display:inline-flex;align-items:center;gap:.55em;padding:.65em 1.1em;border-radius:999px;background:#f7f4fbf0;color:#2a2140;font:650 14px ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;box-shadow:0 10px 28px #140c1c38}.nf-capture-chrome-pill:before{content:"";width:.7em;height:.7em;border-radius:50%;border:2px solid rgba(42,33,64,.22);border-top-color:#864093;animation:nf-capture-spin .7s linear infinite}@keyframes nf-capture-fade{0%{opacity:0}to{opacity:1}}@keyframes nf-capture-spin{to{transform:rotate(360deg)}}
1
+ #notefully{all:initial;--nf-launcher-left: 16px;--nf-launcher-bottom: 16px;--nf-radius: 10px;--nf-z: 2147483000;--nf-accent: #864093;--nf-accent-text: #ffffff;--nf-accent-hot: #e83590;--nf-btn: #864093;--nf-btn-border: #382c74;--nf-btn-text: #ffffff;--nf-panel: #f7f4fb;--nf-text: #2a2140;--nf-muted: rgba(42, 33, 64, .72);--nf-input: #efe8f8;--nf-border: rgba(56, 44, 116, .18);--nf-backdrop: rgba(20, 12, 28, .55);--nf-danger: #e83590;--nf-success: #1a7a3c;--nf-fail: #c2185b;--nf-mark: #fdd341;--nf-mark-text: #2a2140;--nf-canvas-bg: #111;font-family:ui-sans-serif,system-ui,sans-serif;color:var(--nf-text)}#notefully[data-theme=maker]{--nf-accent: #864093;--nf-accent-text: #ffffff;--nf-accent-hot: #e83590;--nf-btn: #864093;--nf-btn-border: #382c74;--nf-btn-text: #ffffff;--nf-panel: #f7f4fb;--nf-text: #2a2140;--nf-muted: rgba(42, 33, 64, .72);--nf-input: #efe8f8;--nf-border: rgba(56, 44, 116, .18);--nf-backdrop: rgba(20, 12, 28, .55);--nf-danger: #e83590;--nf-success: #1a7a3c;--nf-fail: #c2185b;--nf-mark: #fdd341;--nf-mark-text: #2a2140}#notefully[data-theme=all-business]{--nf-accent: #5c6570;--nf-accent-text: #ffffff;--nf-accent-hot: #8a4a4a;--nf-btn: #5c6570;--nf-btn-border: #3a4048;--nf-btn-text: #ffffff;--nf-panel: #ffffff;--nf-text: #1f1f23;--nf-muted: rgba(31, 31, 35, .68);--nf-input: #f0f0f2;--nf-border: rgba(0, 0, 0, .14);--nf-backdrop: rgba(20, 20, 24, .4);--nf-danger: #8a4a4a;--nf-success: #1f7a3a;--nf-fail: #b42318;--nf-mark: #3d6ea8;--nf-mark-text: #ffffff}#notefully[data-theme=brighter-day]{--nf-accent: #5aa8dc;--nf-accent-text: #ffffff;--nf-accent-hot: #f08ab8;--nf-btn: #5aa8dc;--nf-btn-border: #3d7eae;--nf-btn-text: #ffffff;--nf-panel: #fffdf6;--nf-text: #2a2440;--nf-muted: rgba(42, 36, 64, .68);--nf-input: #ffeef5;--nf-border: rgba(90, 168, 220, .28);--nf-backdrop: rgba(60, 40, 70, .35);--nf-danger: #f08ab8;--nf-success: #1f7a3a;--nf-fail: #c4476a;--nf-mark: #5aa8dc;--nf-mark-text: #ffffff}#notefully[data-theme=quiet-night]{--nf-accent: #c4aa5a;--nf-accent-text: #121416;--nf-accent-hot: #6e3a3a;--nf-btn: #3a4048;--nf-btn-border: #0e1012;--nf-btn-text: #d8dbe0;--nf-panel: #1c1f24;--nf-text: #d8dbe0;--nf-muted: rgba(216, 219, 224, .68);--nf-input: #262a30;--nf-border: rgba(255, 255, 255, .12);--nf-backdrop: rgba(0, 0, 0, .65);--nf-danger: #c88888;--nf-success: #7dcea0;--nf-fail: #e89898;--nf-mark: #c4aa5a;--nf-mark-text: #121416}#notefully *{box-sizing:border-box}#notefully .nf-launcher{position:fixed;left:var(--nf-launcher-left);bottom:var(--nf-launcher-bottom);z-index:var(--nf-z);width:48px;height:48px;padding:0;display:grid;place-items:center;background:var(--nf-btn);color:var(--nf-btn-text);border:1px solid var(--nf-btn-border);border-radius:999px;cursor:pointer;box-shadow:0 8px 24px #00000040}#notefully .nf-launcher-icon{width:22px;height:22px;display:block}#notefully .nf-launcher[hidden],#notefully .nf-dialog[hidden],#notefully .nf-stop-video[hidden],#notefully .nf-stage[hidden],#notefully .nf-palette[hidden],#notefully .nf-reset-crop[hidden],#notefully .nf-restore[hidden],#notefully .nf-discard-shot[hidden],#notefully .nf-recapture[hidden],#notefully .nf-privacy[hidden],#notefully .nf-privacy-summary[hidden],#notefully .nf-privacy-panel[hidden],#notefully .nf-privacy-text[hidden],#notefully .nf-video[hidden],#notefully .nf-author[hidden]{display:none!important}#notefully .nf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--nf-z);background:var(--nf-backdrop);display:flex;align-items:center;justify-content:center;padding:24px}#notefully .nf-panel{width:min(920px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--nf-panel);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:var(--nf-radius);padding:16px;display:flex;flex-direction:column;gap:12px}#notefully .nf-panel-body{display:flex;flex-direction:column;gap:12px;min-height:0}#notefully .nf-panel-body[hidden]{display:none!important}#notefully .nf-success-msg{margin:0;text-align:center;font:700 1.35rem/1.2 ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;color:var(--nf-success)}#notefully .nf-success-msg[hidden]{display:none!important}#notefully .nf-dialog.nf-success{pointer-events:none}#notefully .nf-dialog.nf-success .nf-panel{width:auto;min-width:11rem;max-width:min(280px,90vw);max-height:none;overflow:hidden;padding:1.75rem 2.35rem;align-items:center;justify-content:center;gap:0}@media(prefers-reduced-motion:reduce){#notefully .nf-dialog.nf-success .nf-panel{transform:none!important;transition:none!important}}#notefully .nf-stage{display:flex;flex-direction:column;gap:8px}#notefully .nf-palette{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#notefully .nf-palette .nf-discard-shot{margin-left:auto}#notefully .nf-tool,#notefully .nf-reset-crop,#notefully .nf-icon-btn{background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:6px 10px;cursor:pointer;font:13px ui-sans-serif,system-ui,sans-serif}#notefully .nf-icon-btn{width:36px;height:36px;padding:0;display:grid;place-items:center;flex:0 0 36px}#notefully .nf-icon{width:18px;height:18px;display:block}#notefully .nf-tool[data-active=true],#notefully .nf-icon-btn[data-active=true]{border-color:var(--nf-accent);color:var(--nf-accent);box-shadow:inset 0 0 0 1px var(--nf-accent)}#notefully .nf-canvas{position:relative;width:min(100%,calc(48vh * var(--nf-shot-aspect, 16 / 9)));max-height:48vh;aspect-ratio:var(--nf-shot-aspect, auto);margin-inline:auto;background:var(--nf-canvas-bg);border-radius:8px;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}#notefully .nf-canvas[data-draw=true],#notefully .nf-canvas[data-draw=true] .nf-shot{cursor:crosshair}#notefully .nf-sticker{cursor:grab}#notefully .nf-sticker[data-preview=true]{cursor:crosshair}#notefully .nf-sticker.nf-arrow .nf-arrow-hit{cursor:grab}#notefully[data-grabbing=true] .nf-canvas,#notefully[data-grabbing=true] .nf-shot,#notefully[data-grabbing=true] .nf-sticker,#notefully[data-grabbing=true] .nf-sticker *{cursor:grabbing}#notefully .nf-shot{position:absolute;overflow:hidden;--nf-anno-stroke: 3px;--nf-anno-badge: 20px;--nf-anno-badge-font: 11px;--nf-anno-handle: 10px}#notefully .nf-shot img{position:absolute;display:block;max-height:none;pointer-events:none;-webkit-user-drag:none;user-drag:none}#notefully .nf-canvas video.nf-recording-preview{display:block;width:160px;height:auto;max-height:none;object-fit:contain;pointer-events:auto}#notefully .nf-sticker,#notefully .nf-crop{position:absolute;pointer-events:auto;color:var(--nf-mark)}#notefully .nf-sticker[data-selected=true]{z-index:4}#notefully .nf-sticker[data-preview=true],#notefully .nf-sticker.nf-arrow{pointer-events:none}#notefully .nf-sticker.nf-arrow .nf-handle{pointer-events:auto}#notefully .nf-rect,#notefully .nf-circle{border:var(--nf-anno-stroke) solid var(--nf-mark);background:transparent;box-sizing:border-box}#notefully .nf-circle{border-radius:50%}#notefully .nf-arrow-svg{display:block;overflow:visible;pointer-events:none}#notefully .nf-arrow-hit{fill:none;stroke:transparent;stroke-width:16;pointer-events:stroke}#notefully .nf-arrow-shaft{fill:none;stroke:currentColor;stroke-width:var(--nf-anno-stroke);stroke-linecap:round;pointer-events:none}#notefully .nf-arrow-head{fill:currentColor;stroke:none;pointer-events:none}#notefully .nf-badge{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);box-sizing:border-box;min-width:var(--nf-anno-badge);height:var(--nf-anno-badge);padding:0 calc(var(--nf-anno-badge-font) * .35);border-radius:50%;background:var(--nf-mark);color:var(--nf-mark-text);font:700 var(--nf-anno-badge-font)/var(--nf-anno-badge) ui-sans-serif,system-ui,sans-serif;text-align:center;pointer-events:none;z-index:4}#notefully .nf-sticker.nf-arrow .nf-badge{top:50%}#notefully .nf-handle{position:absolute;width:var(--nf-anno-handle);height:var(--nf-anno-handle);background:#fff;border:2px solid var(--nf-mark);border-radius:2px;z-index:5;box-sizing:border-box}#notefully .nf-handle[data-dir=nw]{left:-6px;top:-6px;cursor:nwse-resize}#notefully .nf-handle[data-dir=ne]{right:-6px;top:-6px;cursor:nesw-resize}#notefully .nf-handle[data-dir=sw]{left:-6px;bottom:-6px;cursor:nesw-resize}#notefully .nf-handle[data-dir=se]{right:-6px;bottom:-6px;cursor:nwse-resize}#notefully .nf-handle[data-dir=start],#notefully .nf-handle[data-dir=end]{margin:0;cursor:grab}#notefully .nf-crop{border:2px dashed var(--nf-accent);background:color-mix(in srgb,var(--nf-accent) 14%,transparent);box-shadow:0 0 0 9999px #00000073;pointer-events:none}#notefully .nf-text{width:100%;min-height:96px;resize:vertical;background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:10px;font:14px/1.4 ui-sans-serif,system-ui,sans-serif}#notefully .nf-author{width:100%;box-sizing:border-box;background:var(--nf-input);color:var(--nf-text);border:1px solid var(--nf-border);border-radius:8px;padding:10px;font:14px/1.4 ui-sans-serif,system-ui,sans-serif}#notefully .nf-author::placeholder{color:var(--nf-muted)}#notefully .nf-kind-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#notefully .nf-kind{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 auto;min-width:0}#notefully .nf-kind button{background:var(--nf-input);color:var(--nf-muted);border:1px solid var(--nf-border);border-radius:999px;padding:6px 12px;cursor:pointer}#notefully .nf-kind button[data-active=true]{color:var(--nf-accent-text);background:var(--nf-accent);border-color:var(--nf-accent)}#notefully .nf-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}#notefully .nf-privacy{display:flex;flex-direction:column;gap:8px}#notefully .nf-privacy-summary{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;flex:0 1 auto;max-width:100%}#notefully .nf-privacy-text{color:var(--nf-muted);font:12px/1.35 ui-sans-serif,system-ui,sans-serif;text-align:right}#notefully .nf-privacy-done{background:transparent;color:var(--nf-accent);border:0;padding:0;margin:0;cursor:pointer;font:600 12px ui-sans-serif,system-ui,sans-serif;text-decoration:underline;text-underline-offset:2px}#notefully .nf-privacy-done:hover{color:var(--nf-accent-hot)}#notefully .nf-privacy-panel{display:flex;flex-direction:column;gap:8px;border:1px solid var(--nf-border);border-radius:8px;background:var(--nf-input);padding:10px}#notefully .nf-privacy-scroll{max-height:min(240px,36vh);overflow:auto;display:flex;flex-direction:column;gap:12px}#notefully .nf-privacy-section-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}#notefully .nf-privacy-section-title{margin:0;font:600 12px ui-sans-serif,system-ui,sans-serif;color:var(--nf-text)}#notefully .nf-privacy-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--nf-muted);font:11px ui-sans-serif,system-ui,sans-serif;-webkit-user-select:none;user-select:none}#notefully .nf-privacy-toggle input{margin:0;accent-color:var(--nf-accent)}#notefully .nf-privacy-rows{display:flex;flex-direction:column;gap:6px}#notefully .nf-privacy-row{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:6px;background:var(--nf-panel);border:1px solid var(--nf-border)}#notefully .nf-privacy-row-text{min-width:0;flex:1}#notefully .nf-privacy-row-title{font:600 11px ui-sans-serif,system-ui,sans-serif;color:var(--nf-text);text-transform:capitalize}#notefully .nf-privacy-row-detail{margin-top:2px;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--nf-muted);word-break:break-word;white-space:pre-wrap}#notefully .nf-privacy-done{align-self:flex-end}#notefully .nf-actions button{border:1px solid var(--nf-border);border-radius:8px;padding:8px 12px;cursor:pointer;font:600 13px ui-sans-serif,system-ui,sans-serif;background:var(--nf-input);color:var(--nf-text)}#notefully .nf-actions .nf-icon-btn{padding:0}#notefully .nf-submit{margin-left:auto;background:var(--nf-btn)!important;color:var(--nf-btn-text)!important;border-color:var(--nf-btn-border)!important}#notefully .nf-submit:disabled{opacity:.55;cursor:wait}#notefully .nf-status{color:var(--nf-muted);font:13px ui-sans-serif,system-ui,sans-serif;min-height:1.2em}#notefully .nf-stop-video{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:calc(var(--nf-z) + 1);background:var(--nf-danger);color:#fff;border:0;border-radius:999px;padding:10px 18px;font:700 14px ui-sans-serif,system-ui,sans-serif;cursor:pointer}#notefully[data-nf-hidden-launcher] .nf-launcher{display:none!important}.nf-capture-chrome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483645;display:grid;place-items:center;pointer-events:none;background:#140c1c47;animation:nf-capture-fade .16s ease-out both}.nf-capture-chrome-pill{display:inline-flex;align-items:center;gap:.55em;padding:.65em 1.1em;border-radius:999px;background:#f7f4fbf0;color:#2a2140;font:650 14px ui-sans-serif,system-ui,sans-serif;letter-spacing:.01em;box-shadow:0 10px 28px #140c1c38}.nf-capture-chrome-pill:before{content:"";width:.7em;height:.7em;border-radius:50%;border:2px solid rgba(42,33,64,.22);border-top-color:#864093;animation:nf-capture-spin .7s linear infinite}@keyframes nf-capture-fade{0%{opacity:0}to{opacity:1}}@keyframes nf-capture-spin{to{transform:rotate(360deg)}}
@@ -23,12 +23,14 @@ var Notefully=(function(C){"use strict";function tn(t,e){if(t.match(/^[a-z]+:\/\
23
23
  </div>
24
24
  <textarea class="nf-text" placeholder="Describe the bug or the change you want…"></textarea>
25
25
  <input class="nf-author" type="text" name="author" autocomplete="nickname" placeholder="Anonymous" aria-label="Author">
26
- <div class="nf-kind"></div>
27
- <div class="nf-privacy">
26
+ <div class="nf-kind-row">
27
+ <div class="nf-kind"></div>
28
28
  <div class="nf-privacy-summary">
29
29
  <span class="nf-privacy-text"></span>
30
30
  <button class="nf-privacy-change nf-icon-btn" type="button" title="Change what is sent" aria-label="Change what is sent" aria-expanded="false">${A.privacy}</button>
31
31
  </div>
32
+ </div>
33
+ <div class="nf-privacy">
32
34
  <div class="nf-privacy-panel" hidden>
33
35
  <div class="nf-privacy-scroll"></div>
34
36
  <button class="nf-privacy-done" type="button">Done</button>
@@ -46,11 +48,11 @@ var Notefully=(function(C){"use strict";function tn(t,e){if(t.match(/^[a-z]+:\/\
46
48
  </div>
47
49
  </div>
48
50
  <button class="nf-stop-video" type="button" hidden>Stop</button>
49
- `,document.body.appendChild(h),s={launcher:p(".nf-launcher"),dialog:p(".nf-dialog"),panel:p(".nf-panel"),panelBody:p(".nf-panel-body"),successMsg:p(".nf-success-msg"),stage:p(".nf-stage"),palette:p(".nf-palette"),canvas:p(".nf-canvas"),text:p(".nf-text"),author:p(".nf-author"),kind:p(".nf-kind"),privacy:p(".nf-privacy"),privacySummary:p(".nf-privacy-summary"),privacyText:p(".nf-privacy-text"),privacyChange:p(".nf-privacy-change"),privacyPanel:p(".nf-privacy-panel"),privacyScroll:p(".nf-privacy-scroll"),privacyDone:p(".nf-privacy-done"),actions:p(".nf-actions"),restore:p(".nf-restore"),status:p(".nf-status"),audio:p(".nf-audio"),video:p(".nf-video"),discard:p(".nf-discard-shot"),recapture:p(".nf-recapture"),stop:p(".nf-stop-video"),resetCrop:p(".nf-reset-crop"),submit:p(".nf-submit"),shot:null},Hr(),nt()),h}function nt(){var t;h&&(h.dataset.theme=Ae(d.theme),d.hideLauncher?h.setAttribute("data-nf-hidden-launcher",""):h.removeAttribute("data-nf-hidden-launcher"),s.video&&(s.video.hidden=!d.video),Re(),(t=s.dialog)!=null&&t.hidden&&ht())}function ht(){s.launcher&&(s.launcher.hidden=!!d.hideLauncher)}function Hr(){s.launcher.addEventListener("click",()=>Wt()),p(".nf-dialog").addEventListener("click",e=>{Dt||e.target===s.dialog&&J()}),h.querySelectorAll(".nf-tool").forEach(e=>{e.addEventListener("click",()=>rt(e.dataset.tool))}),s.resetCrop.addEventListener("click",_r),s.canvas.addEventListener("pointerdown",Br),s.canvas.addEventListener("dragstart",e=>e.preventDefault());const t=p(".nf-kind");t&&t.addEventListener("click",e=>{const n=e.target.closest("[data-kind]");n&&Ft(n.dataset.kind)}),s.discard.addEventListener("click",Vr),s.recapture.addEventListener("click",()=>{zr().catch(e=>v(e.message||"Recapture failed."))}),s.restore.addEventListener("click",Wr),s.audio.addEventListener("click",qr),s.video.addEventListener("click",Kr),s.stop.addEventListener("click",()=>et==null?void 0:et.stop()),s.privacyChange.addEventListener("click",()=>bt(!q)),s.privacyDone.addEventListener("click",()=>bt(!1)),s.privacyScroll.addEventListener("change",ti),p(".nf-submit").addEventListener("click",()=>{zt().catch(e=>v(e.message||"Submit failed."))}),Re(),rt(null)}function H(t){return String(t||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Re(){const t=h==null?void 0:h.querySelector(".nf-kind");if(!t)return;const e=Array.isArray(d.kinds)&&d.kinds.length?d.kinds:V;t.innerHTML=e.map(i=>`<button type="button" data-kind="${H(i.id)}">${H(i.label)}</button>`).join("");const r=e.map(i=>i.id).includes(W)?W:dt(e);Ft(r)}function Ft(t){W=(d.kinds||V).map(n=>n.id).includes(t)?t:dt(d.kinds),h==null||h.querySelectorAll("[data-kind]").forEach(n=>{n.dataset.active=String(n.dataset.kind===W)})}function rt(t){F=Tr.has(t)?t:null,L=null,h.querySelectorAll(".nf-tool").forEach(e=>{e.dataset.active=String(e.dataset.tool===F)}),s.canvas&&(s.canvas.dataset.draw=F?"true":"false"),N()&&M()}function $e(t){return Math.min(1,Math.max(0,t))}function it(){return s.shot||s.canvas}function pt(t){const e=it().getBoundingClientRect();return{x:$e((t.clientX-e.left)/Math.max(e.width,1)),y:$e((t.clientY-e.top)/Math.max(e.height,1))}}function Dr(t){const e=it().getBoundingClientRect();return t.clientX>=e.left&&t.clientX<=e.right&&t.clientY>=e.top&&t.clientY<=e.bottom}function ke(t){const e=pt(t),n=y.crop();return{x:n.x+e.x*n.w,y:n.y+e.y*n.h}}function mt(t,e){const n=Math.min(t.x,e.x),r=Math.min(t.y,e.y);return{x:n,y:r,w:Math.max(Pt,Math.abs(e.x-t.x)),h:Math.max(Pt,Math.abs(e.y-t.y))}}function Ut(t){h&&(t?h.dataset.grabbing="true":delete h.dataset.grabbing)}function Nt(t){try{s.canvas.setPointerCapture(t.pointerId)}catch{}}function jt(){window.addEventListener("pointermove",Pe),window.addEventListener("pointerup",yt),window.addEventListener("pointercancel",yt)}function Te(){window.removeEventListener("pointermove",Pe),window.removeEventListener("pointerup",yt),window.removeEventListener("pointercancel",yt)}function Br(t){if(t.button!==0||!N())return;if(!t.target.closest(".nf-sticker")&&!Dr(t)){L=null,M();return}const e=t.target.closest(".nf-handle"),n=t.target.closest(".nf-sticker");if(n&&n.dataset.preview!=="true"){t.preventDefault(),t.stopPropagation(),L=n.dataset.id,Nt(t),Fr({kind:"sticker",id:L,dir:(e==null?void 0:e.dataset.dir)||"move"},t),M();return}if(L=null,F==="crop"){t.preventDefault(),Nt(t),w={kind:"crop",start:pt(t),current:pt(t)},jt(),M();return}if(F==="arrow"||F==="rect"||F==="circle"){t.preventDefault(),Nt(t);const r=ke(t);w={kind:"sticker",type:F,start:r,current:r},jt(),M();return}M()}function Fr(t,e){e.preventDefault(),e.stopPropagation();const n=it().getBoundingClientRect(),r=y.list().find(i=>i.id===t.id);b={...t,startX:e.clientX,startY:e.clientY,crop:y.crop(),sticker:r?{...r}:null,rect:n},Ut(t.dir==="move"||t.dir==="start"||t.dir==="end"),jt()}function Pe(t){if(w){w.current=w.kind==="crop"?pt(t):ke(t),M();return}if(!b)return;const e=(t.clientX-b.startX)/b.rect.width*b.crop.w,n=(t.clientY-b.startY)/b.rect.height*b.crop.h,r=b.sticker;if(r){if(b.dir==="end")y.update(r.id,{x2:r.x2+e,y2:r.y2+n});else if(b.dir==="start")y.update(r.id,{x:r.x+e,y:r.y+n});else if(b.dir==="move")y.update(r.id,{x:r.x+e,y:r.y+n,x2:(r.x2||r.x)+e,y2:(r.y2||r.y)+n});else{const i={x:r.x,y:r.y,w:r.w,h:r.h};Ur(i,b.dir,e,n),y.update(r.id,i)}M()}}function Ur(t,e,n,r){if(e.includes("e")&&(t.w=Math.max(.04,t.w+n)),e.includes("s")&&(t.h=Math.max(.04,t.h+r)),e.includes("w")){const i=Math.max(.04,t.w-n);t.x+=t.w-i,t.w=i}if(e.includes("n")){const i=Math.max(.04,t.h-r);t.y+=t.h-i,t.h=i}}function yt(t){if(Te(),Ut(!1),w){Nr();return}if(b){if(b.kind==="sticker"){const e=s.canvas.getBoundingClientRect();(t.clientX<e.left-24||t.clientX>e.right+24||t.clientY<e.top-24||t.clientY>e.bottom+24)&&(y.remove(b.id),L=null)}b=null,M()}}function Nr(){const t=w;if(w=null,!t)return;if(t.kind==="crop"){const n=mt(t.start,t.current);if(Math.abs(t.current.x-t.start.x)<xe||Math.abs(t.current.y-t.start.y)<xe){M();return}const i=y.crop();y.setCrop({x:i.x+n.x*i.w,y:i.y+n.y*i.h,w:n.w*i.w,h:n.h*i.h}),K();return}const e=jr(t);e&&(L=e.id),M()}function jr(t){if(t.type==="arrow"){const e=t.current.x-t.start.x,n=t.current.y-t.start.y;return Math.hypot(e,n)<Pt?y.add("arrow",{x:t.start.x,y:t.start.y,x2:t.start.x+.12,y2:t.start.y,w:.12,h:.02}):y.add("arrow",{x:t.start.x,y:t.start.y,x2:t.current.x,y2:t.current.y,w:Math.abs(e),h:Math.abs(n)})}return y.add(t.type,mt(t.start,t.current))}function _r(){y.resetCrop(),L=null,K()}function gt(){s.resetCrop&&(s.resetCrop.hidden=!y.isCropped())}function _t(t){if(!s.audio)return;const e=t?"Stop audio":"Record audio";s.audio.title=e,s.audio.setAttribute("aria-label",e),s.audio.dataset.active=String(!!t)}function N(){return B(k)}function at(){if(!s.stage||!s.palette||!s.actions||!s.recapture)return;const t=N();s.stage.hidden=!t&&!T,s.palette.hidden=!t,s.discard&&(s.discard.hidden=!t),s.restore&&(s.restore.hidden=t||!G),t?(s.palette.appendChild(s.discard),s.palette.appendChild(s.recapture)):s.audio?s.audio.after(s.recapture):s.actions.insertBefore(s.recapture,s.submit||null),s.recapture.hidden=!1}function Vr(){N()&&(G=k),k="",rt(null),at(),K()}function Wr(){B(G)&&(k=G,at(),K())}function Ie(){return{capture:typeof d.capture=="function"?d.capture:void 0,onBeforeCapture:typeof d.onBeforeCapture=="function"?d.onBeforeCapture:void 0}}function Oe(t){if(!B(t))throw new Error("Screenshot failed; you can still send text.");k=t,G=t,y=Lt(),I={w:0,h:0},L=null,w=null,b=null,rt(null)}async function zr(){if(!(Ot||!s.dialog||s.dialog.hidden)){Ot=!0,s.recapture.disabled=!0,v("Capturing…",!0),s.dialog.hidden=!0;try{let t="";try{t=await rr()}catch{t=await fe(Ie())}Oe(t),v("")}catch(t){v((t==null?void 0:t.message)||"Screenshot failed; you can still send text.")}finally{s.dialog.hidden=!1,s.recapture.disabled=!1,Ot=!1,at(),K()}}}function qr(){try{if(z||(z=dr(e=>{const n=s.text.value.trim();s.text.value=n?`${n} ${e}`:e})),!z.isSupported()){v("Audio-to-text is not supported in this browser.");return}const t=z.start();_t(t),v(t?"Listening…":"")}catch(t){v(t.message)}}async function Kr(){if(!d.video){v("Video is disabled on this host.");return}s.dialog.hidden=!0,s.stop.hidden=!1,nt(),s.launcher.hidden=!0,et=hr({onStart(){},onStop(t){T=t,s.stop.hidden=!0,ht(),s.dialog.hidden=!1,at(),K(),v(t?"Video attached.":"Recording cancelled.")},onError(t){v(t.message)}});try{await et.start()}catch(t){s.stop.hidden=!0,ht(),s.dialog.hidden=!1,v(t.message)}}function K(){if(s.shot=null,!N()){s.canvas.style.removeProperty("--nf-shot-aspect"),s.canvas.style.removeProperty("aspect-ratio"),s.canvas.innerHTML=T?`<video class="nf-recording-preview" controls src="${URL.createObjectURL(T)}"></video>`:"",gt();return}s.canvas.innerHTML=`<div class="nf-shot"><img alt="Screenshot" src="${k}" draggable="false"></div>`,s.shot=s.canvas.querySelector(".nf-shot");const t=s.shot.querySelector("img");t.draggable=!1,t.addEventListener("dragstart",n=>n.preventDefault());const e=()=>{Xr(t),M()};t.addEventListener("load",e),t.complete&&t.naturalWidth&&e(),gt()}function Xr(t){const e=t.naturalWidth||I.w,n=t.naturalHeight||I.h;if(e&&n&&(I={w:e,h:n},s.canvas.style.setProperty("--nf-shot-aspect",String(e/n)),s.canvas.style.aspectRatio=`${e} / ${n}`),!s.shot||!I.w||!I.h)return;const r=y.crop(),i=I.w/I.h,a=r.w/r.h*i,o=Math.min(1,a/i),c=Math.min(1,i/a);s.shot.style.left=`${(1-o)/2*100}%`,s.shot.style.top=`${(1-c)/2*100}%`,s.shot.style.width=`${o*100}%`,s.shot.style.height=`${c*100}%`,t.style.width=`${100/r.w}%`,t.style.height=`${100/r.h}%`,t.style.left=`${-r.x/r.w*100}%`,t.style.top=`${-r.y/r.h*100}%`}function Yr(t){return t.type==="arrow"?{id:"preview",type:"arrow",number:"",x:t.start.x,y:t.start.y,x2:t.current.x,y2:t.current.y,w:Math.abs(t.current.x-t.start.x),h:Math.abs(t.current.y-t.start.y)}:{id:"preview",type:t.type,number:"",...mt(t.start,t.current)}}function M(){if((s.shot||s.canvas).querySelectorAll(".nf-sticker, .nf-crop").forEach(a=>a.remove()),!N()||!s.shot){gt();return}const e=y.crop(),n=it(),r=Rt(n.clientWidth||400);if(s.shot.style.setProperty("--nf-anno-stroke",`${r.stroke}px`),s.shot.style.setProperty("--nf-anno-badge",`${r.badgeRadius*2}px`),s.shot.style.setProperty("--nf-anno-badge-font",`${r.fontSize}px`),s.shot.style.setProperty("--nf-anno-handle",`${Math.max(8,r.stroke*2.5)}px`),(w==null?void 0:w.kind)==="crop"){const a=document.createElement("div");a.className="nf-crop",He(a,mt(w.start,w.current),{x:0,y:0,w:1,h:1}),s.shot.appendChild(a)}const i=y.list().slice();if((w==null?void 0:w.kind)==="sticker"&&i.push(Yr(w)),i.forEach(a=>{const o=a.id==="preview",c=!o&&a.id===L,l=document.createElement("div");if(l.className=`nf-sticker nf-${a.type}`,l.dataset.id=a.id,c&&(l.dataset.selected="true"),o&&(l.dataset.preview="true"),a.type==="arrow"?Gr(l,a,e,c,r):(He(l,a,e),c&&["nw","ne","sw","se"].forEach(u=>Vt(l,u))),!o&&a.number){const u=document.createElement("span");u.className="nf-badge",u.textContent=String(a.number),l.appendChild(u)}s.shot.appendChild(l)}),s.canvas.querySelectorAll(":scope > .nf-recording-preview").forEach(a=>a.remove()),T){const a=document.createElement("video");a.className="nf-recording-preview",a.controls=!0,a.src=URL.createObjectURL(T),a.style.position="absolute",a.style.right="8px",a.style.bottom="8px",a.style.width="160px",s.canvas.appendChild(a)}gt()}function Gr(t,e,n,r,i=Rt(400)){const a=it(),o=a.clientWidth,c=a.clientHeight,l=(e.x-n.x)/n.w*o,u=(e.y-n.y)/n.h*c,f=((e.x2??e.x+e.w)-n.x)/n.w*o,m=((e.y2??e.y)-n.y)/n.h*c,g=Math.max(18,i.arrowHead+i.stroke*2),S=Math.min(l,f)-g,P=Math.min(u,m)-g,j=Math.max(2,Math.abs(f-l))+g*2,ot=Math.max(2,Math.abs(m-u))+g*2,Q=l-S,Z=u-P,qt=f-S,Kt=m-P,_=we(Q,Z,qt,Kt,i),tt=document.createElementNS("http://www.w3.org/2000/svg","svg");t.style.left=`${S}px`,t.style.top=`${P}px`,t.style.width=`${j}px`,t.style.height=`${ot}px`,tt.setAttribute("class","nf-arrow-svg"),tt.setAttribute("viewBox",`0 0 ${j} ${ot}`),tt.setAttribute("width",String(j)),tt.setAttribute("height",String(ot)),tt.innerHTML=`
51
+ `,document.body.appendChild(h),s={launcher:p(".nf-launcher"),dialog:p(".nf-dialog"),panel:p(".nf-panel"),panelBody:p(".nf-panel-body"),successMsg:p(".nf-success-msg"),stage:p(".nf-stage"),palette:p(".nf-palette"),canvas:p(".nf-canvas"),text:p(".nf-text"),author:p(".nf-author"),kindRow:p(".nf-kind-row"),kind:p(".nf-kind"),privacy:p(".nf-privacy"),privacySummary:p(".nf-privacy-summary"),privacyText:p(".nf-privacy-text"),privacyChange:p(".nf-privacy-change"),privacyPanel:p(".nf-privacy-panel"),privacyScroll:p(".nf-privacy-scroll"),privacyDone:p(".nf-privacy-done"),actions:p(".nf-actions"),restore:p(".nf-restore"),status:p(".nf-status"),audio:p(".nf-audio"),video:p(".nf-video"),discard:p(".nf-discard-shot"),recapture:p(".nf-recapture"),stop:p(".nf-stop-video"),resetCrop:p(".nf-reset-crop"),submit:p(".nf-submit"),shot:null},Hr(),nt()),h}function nt(){var t;h&&(h.dataset.theme=Ae(d.theme),d.hideLauncher?h.setAttribute("data-nf-hidden-launcher",""):h.removeAttribute("data-nf-hidden-launcher"),s.video&&(s.video.hidden=!d.video),Re(),(t=s.dialog)!=null&&t.hidden&&ht())}function ht(){s.launcher&&(s.launcher.hidden=!!d.hideLauncher)}function Hr(){s.launcher.addEventListener("click",()=>Wt()),p(".nf-dialog").addEventListener("click",e=>{Dt||e.target===s.dialog&&J()}),h.querySelectorAll(".nf-tool").forEach(e=>{e.addEventListener("click",()=>rt(e.dataset.tool))}),s.resetCrop.addEventListener("click",_r),s.canvas.addEventListener("pointerdown",Br),s.canvas.addEventListener("dragstart",e=>e.preventDefault());const t=p(".nf-kind");t&&t.addEventListener("click",e=>{const n=e.target.closest("[data-kind]");n&&Ft(n.dataset.kind)}),s.discard.addEventListener("click",Vr),s.recapture.addEventListener("click",()=>{zr().catch(e=>v(e.message||"Recapture failed."))}),s.restore.addEventListener("click",Wr),s.audio.addEventListener("click",qr),s.video.addEventListener("click",Kr),s.stop.addEventListener("click",()=>et==null?void 0:et.stop()),s.privacyChange.addEventListener("click",()=>bt(!q)),s.privacyDone.addEventListener("click",()=>bt(!1)),s.privacyScroll.addEventListener("change",ti),p(".nf-submit").addEventListener("click",()=>{zt().catch(e=>v(e.message||"Submit failed."))}),Re(),rt(null)}function H(t){return String(t||"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function Re(){const t=h==null?void 0:h.querySelector(".nf-kind");if(!t)return;const e=Array.isArray(d.kinds)&&d.kinds.length?d.kinds:V;t.innerHTML=e.map(i=>`<button type="button" data-kind="${H(i.id)}">${H(i.label)}</button>`).join("");const r=e.map(i=>i.id).includes(W)?W:dt(e);Ft(r)}function Ft(t){W=(d.kinds||V).map(n=>n.id).includes(t)?t:dt(d.kinds),h==null||h.querySelectorAll("[data-kind]").forEach(n=>{n.dataset.active=String(n.dataset.kind===W)})}function rt(t){F=Tr.has(t)?t:null,L=null,h.querySelectorAll(".nf-tool").forEach(e=>{e.dataset.active=String(e.dataset.tool===F)}),s.canvas&&(s.canvas.dataset.draw=F?"true":"false"),N()&&M()}function $e(t){return Math.min(1,Math.max(0,t))}function it(){return s.shot||s.canvas}function pt(t){const e=it().getBoundingClientRect();return{x:$e((t.clientX-e.left)/Math.max(e.width,1)),y:$e((t.clientY-e.top)/Math.max(e.height,1))}}function Dr(t){const e=it().getBoundingClientRect();return t.clientX>=e.left&&t.clientX<=e.right&&t.clientY>=e.top&&t.clientY<=e.bottom}function ke(t){const e=pt(t),n=y.crop();return{x:n.x+e.x*n.w,y:n.y+e.y*n.h}}function mt(t,e){const n=Math.min(t.x,e.x),r=Math.min(t.y,e.y);return{x:n,y:r,w:Math.max(Pt,Math.abs(e.x-t.x)),h:Math.max(Pt,Math.abs(e.y-t.y))}}function Ut(t){h&&(t?h.dataset.grabbing="true":delete h.dataset.grabbing)}function Nt(t){try{s.canvas.setPointerCapture(t.pointerId)}catch{}}function jt(){window.addEventListener("pointermove",Pe),window.addEventListener("pointerup",yt),window.addEventListener("pointercancel",yt)}function Te(){window.removeEventListener("pointermove",Pe),window.removeEventListener("pointerup",yt),window.removeEventListener("pointercancel",yt)}function Br(t){if(t.button!==0||!N())return;if(!t.target.closest(".nf-sticker")&&!Dr(t)){L=null,M();return}const e=t.target.closest(".nf-handle"),n=t.target.closest(".nf-sticker");if(n&&n.dataset.preview!=="true"){t.preventDefault(),t.stopPropagation(),L=n.dataset.id,Nt(t),Fr({kind:"sticker",id:L,dir:(e==null?void 0:e.dataset.dir)||"move"},t),M();return}if(L=null,F==="crop"){t.preventDefault(),Nt(t),w={kind:"crop",start:pt(t),current:pt(t)},jt(),M();return}if(F==="arrow"||F==="rect"||F==="circle"){t.preventDefault(),Nt(t);const r=ke(t);w={kind:"sticker",type:F,start:r,current:r},jt(),M();return}M()}function Fr(t,e){e.preventDefault(),e.stopPropagation();const n=it().getBoundingClientRect(),r=y.list().find(i=>i.id===t.id);b={...t,startX:e.clientX,startY:e.clientY,crop:y.crop(),sticker:r?{...r}:null,rect:n},Ut(t.dir==="move"||t.dir==="start"||t.dir==="end"),jt()}function Pe(t){if(w){w.current=w.kind==="crop"?pt(t):ke(t),M();return}if(!b)return;const e=(t.clientX-b.startX)/b.rect.width*b.crop.w,n=(t.clientY-b.startY)/b.rect.height*b.crop.h,r=b.sticker;if(r){if(b.dir==="end")y.update(r.id,{x2:r.x2+e,y2:r.y2+n});else if(b.dir==="start")y.update(r.id,{x:r.x+e,y:r.y+n});else if(b.dir==="move")y.update(r.id,{x:r.x+e,y:r.y+n,x2:(r.x2||r.x)+e,y2:(r.y2||r.y)+n});else{const i={x:r.x,y:r.y,w:r.w,h:r.h};Ur(i,b.dir,e,n),y.update(r.id,i)}M()}}function Ur(t,e,n,r){if(e.includes("e")&&(t.w=Math.max(.04,t.w+n)),e.includes("s")&&(t.h=Math.max(.04,t.h+r)),e.includes("w")){const i=Math.max(.04,t.w-n);t.x+=t.w-i,t.w=i}if(e.includes("n")){const i=Math.max(.04,t.h-r);t.y+=t.h-i,t.h=i}}function yt(t){if(Te(),Ut(!1),w){Nr();return}if(b){if(b.kind==="sticker"){const e=s.canvas.getBoundingClientRect();(t.clientX<e.left-24||t.clientX>e.right+24||t.clientY<e.top-24||t.clientY>e.bottom+24)&&(y.remove(b.id),L=null)}b=null,M()}}function Nr(){const t=w;if(w=null,!t)return;if(t.kind==="crop"){const n=mt(t.start,t.current);if(Math.abs(t.current.x-t.start.x)<xe||Math.abs(t.current.y-t.start.y)<xe){M();return}const i=y.crop();y.setCrop({x:i.x+n.x*i.w,y:i.y+n.y*i.h,w:n.w*i.w,h:n.h*i.h}),K();return}const e=jr(t);e&&(L=e.id),M()}function jr(t){if(t.type==="arrow"){const e=t.current.x-t.start.x,n=t.current.y-t.start.y;return Math.hypot(e,n)<Pt?y.add("arrow",{x:t.start.x,y:t.start.y,x2:t.start.x+.12,y2:t.start.y,w:.12,h:.02}):y.add("arrow",{x:t.start.x,y:t.start.y,x2:t.current.x,y2:t.current.y,w:Math.abs(e),h:Math.abs(n)})}return y.add(t.type,mt(t.start,t.current))}function _r(){y.resetCrop(),L=null,K()}function gt(){s.resetCrop&&(s.resetCrop.hidden=!y.isCropped())}function _t(t){if(!s.audio)return;const e=t?"Stop audio":"Record audio";s.audio.title=e,s.audio.setAttribute("aria-label",e),s.audio.dataset.active=String(!!t)}function N(){return B(k)}function at(){if(!s.stage||!s.palette||!s.actions||!s.recapture)return;const t=N();s.stage.hidden=!t&&!T,s.palette.hidden=!t,s.discard&&(s.discard.hidden=!t),s.restore&&(s.restore.hidden=t||!G),t?(s.palette.appendChild(s.discard),s.palette.appendChild(s.recapture)):s.audio?s.audio.after(s.recapture):s.actions.insertBefore(s.recapture,s.submit||null),s.recapture.hidden=!1}function Vr(){N()&&(G=k),k="",rt(null),at(),K()}function Wr(){B(G)&&(k=G,at(),K())}function Ie(){return{capture:typeof d.capture=="function"?d.capture:void 0,onBeforeCapture:typeof d.onBeforeCapture=="function"?d.onBeforeCapture:void 0}}function Oe(t){if(!B(t))throw new Error("Screenshot failed; you can still send text.");k=t,G=t,y=Lt(),I={w:0,h:0},L=null,w=null,b=null,rt(null)}async function zr(){if(!(Ot||!s.dialog||s.dialog.hidden)){Ot=!0,s.recapture.disabled=!0,v("Capturing…",!0),s.dialog.hidden=!0;try{let t="";try{t=await rr()}catch{t=await fe(Ie())}Oe(t),v("")}catch(t){v((t==null?void 0:t.message)||"Screenshot failed; you can still send text.")}finally{s.dialog.hidden=!1,s.recapture.disabled=!1,Ot=!1,at(),K()}}}function qr(){try{if(z||(z=dr(e=>{const n=s.text.value.trim();s.text.value=n?`${n} ${e}`:e})),!z.isSupported()){v("Audio-to-text is not supported in this browser.");return}const t=z.start();_t(t),v(t?"Listening…":"")}catch(t){v(t.message)}}async function Kr(){if(!d.video){v("Video is disabled on this host.");return}s.dialog.hidden=!0,s.stop.hidden=!1,nt(),s.launcher.hidden=!0,et=hr({onStart(){},onStop(t){T=t,s.stop.hidden=!0,ht(),s.dialog.hidden=!1,at(),K(),v(t?"Video attached.":"Recording cancelled.")},onError(t){v(t.message)}});try{await et.start()}catch(t){s.stop.hidden=!0,ht(),s.dialog.hidden=!1,v(t.message)}}function K(){if(s.shot=null,!N()){s.canvas.style.removeProperty("--nf-shot-aspect"),s.canvas.style.removeProperty("aspect-ratio"),s.canvas.innerHTML=T?`<video class="nf-recording-preview" controls src="${URL.createObjectURL(T)}"></video>`:"",gt();return}s.canvas.innerHTML=`<div class="nf-shot"><img alt="Screenshot" src="${k}" draggable="false"></div>`,s.shot=s.canvas.querySelector(".nf-shot");const t=s.shot.querySelector("img");t.draggable=!1,t.addEventListener("dragstart",n=>n.preventDefault());const e=()=>{Xr(t),M()};t.addEventListener("load",e),t.complete&&t.naturalWidth&&e(),gt()}function Xr(t){const e=t.naturalWidth||I.w,n=t.naturalHeight||I.h;if(e&&n&&(I={w:e,h:n},s.canvas.style.setProperty("--nf-shot-aspect",String(e/n)),s.canvas.style.aspectRatio=`${e} / ${n}`),!s.shot||!I.w||!I.h)return;const r=y.crop(),i=I.w/I.h,a=r.w/r.h*i,o=Math.min(1,a/i),c=Math.min(1,i/a);s.shot.style.left=`${(1-o)/2*100}%`,s.shot.style.top=`${(1-c)/2*100}%`,s.shot.style.width=`${o*100}%`,s.shot.style.height=`${c*100}%`,t.style.width=`${100/r.w}%`,t.style.height=`${100/r.h}%`,t.style.left=`${-r.x/r.w*100}%`,t.style.top=`${-r.y/r.h*100}%`}function Yr(t){return t.type==="arrow"?{id:"preview",type:"arrow",number:"",x:t.start.x,y:t.start.y,x2:t.current.x,y2:t.current.y,w:Math.abs(t.current.x-t.start.x),h:Math.abs(t.current.y-t.start.y)}:{id:"preview",type:t.type,number:"",...mt(t.start,t.current)}}function M(){if((s.shot||s.canvas).querySelectorAll(".nf-sticker, .nf-crop").forEach(a=>a.remove()),!N()||!s.shot){gt();return}const e=y.crop(),n=it(),r=Rt(n.clientWidth||400);if(s.shot.style.setProperty("--nf-anno-stroke",`${r.stroke}px`),s.shot.style.setProperty("--nf-anno-badge",`${r.badgeRadius*2}px`),s.shot.style.setProperty("--nf-anno-badge-font",`${r.fontSize}px`),s.shot.style.setProperty("--nf-anno-handle",`${Math.max(8,r.stroke*2.5)}px`),(w==null?void 0:w.kind)==="crop"){const a=document.createElement("div");a.className="nf-crop",He(a,mt(w.start,w.current),{x:0,y:0,w:1,h:1}),s.shot.appendChild(a)}const i=y.list().slice();if((w==null?void 0:w.kind)==="sticker"&&i.push(Yr(w)),i.forEach(a=>{const o=a.id==="preview",c=!o&&a.id===L,l=document.createElement("div");if(l.className=`nf-sticker nf-${a.type}`,l.dataset.id=a.id,c&&(l.dataset.selected="true"),o&&(l.dataset.preview="true"),a.type==="arrow"?Gr(l,a,e,c,r):(He(l,a,e),c&&["nw","ne","sw","se"].forEach(u=>Vt(l,u))),!o&&a.number){const u=document.createElement("span");u.className="nf-badge",u.textContent=String(a.number),l.appendChild(u)}s.shot.appendChild(l)}),s.canvas.querySelectorAll(":scope > .nf-recording-preview").forEach(a=>a.remove()),T){const a=document.createElement("video");a.className="nf-recording-preview",a.controls=!0,a.src=URL.createObjectURL(T),a.style.position="absolute",a.style.right="8px",a.style.bottom="8px",a.style.width="160px",s.canvas.appendChild(a)}gt()}function Gr(t,e,n,r,i=Rt(400)){const a=it(),o=a.clientWidth,c=a.clientHeight,l=(e.x-n.x)/n.w*o,u=(e.y-n.y)/n.h*c,f=((e.x2??e.x+e.w)-n.x)/n.w*o,m=((e.y2??e.y)-n.y)/n.h*c,g=Math.max(18,i.arrowHead+i.stroke*2),S=Math.min(l,f)-g,P=Math.min(u,m)-g,j=Math.max(2,Math.abs(f-l))+g*2,ot=Math.max(2,Math.abs(m-u))+g*2,Q=l-S,Z=u-P,qt=f-S,Kt=m-P,_=we(Q,Z,qt,Kt,i),tt=document.createElementNS("http://www.w3.org/2000/svg","svg");t.style.left=`${S}px`,t.style.top=`${P}px`,t.style.width=`${j}px`,t.style.height=`${ot}px`,tt.setAttribute("class","nf-arrow-svg"),tt.setAttribute("viewBox",`0 0 ${j} ${ot}`),tt.setAttribute("width",String(j)),tt.setAttribute("height",String(ot)),tt.innerHTML=`
50
52
  <line class="nf-arrow-hit" x1="${Q}" y1="${Z}" x2="${qt}" y2="${Kt}" />
51
53
  <line class="nf-arrow-shaft" x1="${Q}" y1="${Z}" x2="${_.shaftEnd.x}" y2="${_.shaftEnd.y}" />
52
54
  <polygon class="nf-arrow-head" points="${_.tipX},${_.tipY} ${_.left.x},${_.left.y} ${_.right.x},${_.right.y}" />
53
- `,t.appendChild(tt),r&&(Vt(t,"start",{left:Q-5,top:Z-5}),Vt(t,"end",{left:qt-5,top:Kt-5}))}function Vt(t,e,n){const r=document.createElement("span");r.className="nf-handle",r.dataset.dir=e,n&&(r.style.left=`${n.left}px`,r.style.top=`${n.top}px`),t.appendChild(r)}function He(t,e,n){t.style.left=`${(e.x-n.x)/n.w*100}%`,t.style.top=`${(e.y-n.y)/n.h*100}%`,t.style.width=`${e.w/n.w*100}%`,t.style.height=`${e.h/n.h*100}%`}function De(){try{return String(localStorage.getItem(Me)||"").trim()}catch{return""}}function Jr(t){const e=String(t||"").trim();if(!(!e||e===It))try{localStorage.setItem(Me,e)}catch{}}function Be(){return!!(String($.userId||"").trim()||String($.email||"").trim()||String($.displayName||"").trim())}function Fe(){return String($.displayName||$.email||$.userId||"").trim()}function Qr(){var e;if(Be())return Fe()||It;const t=String(((e=s.author)==null?void 0:e.value)||"").trim();return t?(Jr(t),t):It}function Ue(){if(!s.author)return;const t=Be();if(s.author.hidden=t,t){s.author.value="";return}s.author.value=De()}function Ne(t,e=Ce){const n=Number(t);return Number.isFinite(n)?Math.min(Ir,Math.max(0,Math.floor(n))):e}function je(t={}){cr(t);const e=Object.prototype.hasOwnProperty.call(t,"kinds");d={...d,endpoint:String(t.endpoint||d.endpoint||"").replace(/\/$/,""),projectKey:t.projectKey==null?d.projectKey:String(t.projectKey),version:t.version==null?d.version:String(t.version),name:t.name==null?d.name:String(t.name||""),targets:t.targets===void 0?d.targets:t.targets,hideLauncher:t.hideLauncher==null?d.hideLauncher:!!t.hideLauncher,theme:Ae(t.theme??d.theme),video:t.video==null?d.video:!!t.video,consoleLogLimit:t.consoleLogLimit==null?d.consoleLogLimit:Ne(t.consoleLogLimit,d.consoleLogLimit),kinds:e?$r(t.kinds):d.kinds,capture:t.capture===void 0?d.capture:t.capture,onBeforeCapture:t.onBeforeCapture===void 0?d.onBeforeCapture:t.onBeforeCapture}}function wt(t={}){return je(t),h&&nt(),vt}function _e(t={}){return je(t),Bt(),nt(),vt}function Ve(t){return wt({theme:t})}function We(t){const e=!!t;return!e&&h&&s.dialog&&!s.dialog.hidden&&J(),wt({hideLauncher:!e})}function Zr(){const t=Fe()||De()||void 0,e=or({...$,displayName:$.displayName||t});U=Er(e),O=Cr(Ee.snapshot().slice(-Ne(d.consoleLogLimit))),q=!1}function bt(t){q=!!t,s.privacyPanel&&(s.privacyPanel.hidden=!q),s.privacyChange&&(s.privacyChange.setAttribute("aria-expanded",q?"true":"false"),s.privacyChange.dataset.active=String(q)),q&&Ye()}function ze(){if(!s.privacy||!s.privacyText||!s.privacyChange)return;const t=Ar({diagnostics:U,logs:O});s.privacyText.textContent=t,s.privacyText.hidden=!t,s.privacy.hidden=U.length===0&&O.length===0,s.privacyChange.hidden=!1}function qe(t,e,n){return`<label class="nf-privacy-toggle">
55
+ `,t.appendChild(tt),r&&(Vt(t,"start",{left:Q-5,top:Z-5}),Vt(t,"end",{left:qt-5,top:Kt-5}))}function Vt(t,e,n){const r=document.createElement("span");r.className="nf-handle",r.dataset.dir=e,n&&(r.style.left=`${n.left}px`,r.style.top=`${n.top}px`),t.appendChild(r)}function He(t,e,n){t.style.left=`${(e.x-n.x)/n.w*100}%`,t.style.top=`${(e.y-n.y)/n.h*100}%`,t.style.width=`${e.w/n.w*100}%`,t.style.height=`${e.h/n.h*100}%`}function De(){try{return String(localStorage.getItem(Me)||"").trim()}catch{return""}}function Jr(t){const e=String(t||"").trim();if(!(!e||e===It))try{localStorage.setItem(Me,e)}catch{}}function Be(){return!!(String($.userId||"").trim()||String($.email||"").trim()||String($.displayName||"").trim())}function Fe(){return String($.displayName||$.email||$.userId||"").trim()}function Qr(){var e;if(Be())return Fe()||It;const t=String(((e=s.author)==null?void 0:e.value)||"").trim();return t?(Jr(t),t):It}function Ue(){if(!s.author)return;const t=Be();if(s.author.hidden=t,t){s.author.value="";return}s.author.value=De()}function Ne(t,e=Ce){const n=Number(t);return Number.isFinite(n)?Math.min(Ir,Math.max(0,Math.floor(n))):e}function je(t={}){cr(t);const e=Object.prototype.hasOwnProperty.call(t,"kinds");d={...d,endpoint:String(t.endpoint||d.endpoint||"").replace(/\/$/,""),projectKey:t.projectKey==null?d.projectKey:String(t.projectKey),version:t.version==null?d.version:String(t.version),name:t.name==null?d.name:String(t.name||""),targets:t.targets===void 0?d.targets:t.targets,hideLauncher:t.hideLauncher==null?d.hideLauncher:!!t.hideLauncher,theme:Ae(t.theme??d.theme),video:t.video==null?d.video:!!t.video,consoleLogLimit:t.consoleLogLimit==null?d.consoleLogLimit:Ne(t.consoleLogLimit,d.consoleLogLimit),kinds:e?$r(t.kinds):d.kinds,capture:t.capture===void 0?d.capture:t.capture,onBeforeCapture:t.onBeforeCapture===void 0?d.onBeforeCapture:t.onBeforeCapture}}function wt(t={}){return je(t),h&&nt(),vt}function _e(t={}){return je(t),Bt(),nt(),vt}function Ve(t){return wt({theme:t})}function We(t){const e=!!t;return!e&&h&&s.dialog&&!s.dialog.hidden&&J(),wt({hideLauncher:!e})}function Zr(){const t=Fe()||De()||void 0,e=or({...$,displayName:$.displayName||t});U=Er(e),O=Cr(Ee.snapshot().slice(-Ne(d.consoleLogLimit))),q=!1}function bt(t){q=!!t,s.privacyPanel&&(s.privacyPanel.hidden=!q),s.privacyChange&&(s.privacyChange.setAttribute("aria-expanded",q?"true":"false"),s.privacyChange.dataset.active=String(q)),q&&Ye()}function ze(){if(!s.privacy||!s.privacyText||!s.privacyChange)return;const t=Ar({diagnostics:U,logs:O});s.privacyText.textContent=t,s.privacyText.hidden=!t;const e=U.length===0&&O.length===0;s.privacySummary&&(s.privacySummary.hidden=e),s.privacy.hidden=e,s.privacyChange.hidden=!1}function qe(t,e,n){return`<label class="nf-privacy-toggle">
54
56
  <span class="nf-privacy-toggle-label">Redact</span>
55
57
  <input type="checkbox" ${t?"checked":""} ${e?'data-indeterminate="true"':""} aria-label="${H(n)}">
56
58
  </label>`}function Ke(t,e,n,r,i){return`<div class="nf-privacy-row" data-kind="${H(t)}" data-id="${H(e)}">
package/dist/notefully.js CHANGED
@@ -1221,12 +1221,14 @@ function Ut() {
1221
1221
  </div>
1222
1222
  <textarea class="nf-text" placeholder="Describe the bug or the change you want…"></textarea>
1223
1223
  <input class="nf-author" type="text" name="author" autocomplete="nickname" placeholder="Anonymous" aria-label="Author">
1224
- <div class="nf-kind"></div>
1225
- <div class="nf-privacy">
1224
+ <div class="nf-kind-row">
1225
+ <div class="nf-kind"></div>
1226
1226
  <div class="nf-privacy-summary">
1227
1227
  <span class="nf-privacy-text"></span>
1228
1228
  <button class="nf-privacy-change nf-icon-btn" type="button" title="Change what is sent" aria-label="Change what is sent" aria-expanded="false">${M.privacy}</button>
1229
1229
  </div>
1230
+ </div>
1231
+ <div class="nf-privacy">
1230
1232
  <div class="nf-privacy-panel" hidden>
1231
1233
  <div class="nf-privacy-scroll"></div>
1232
1234
  <button class="nf-privacy-done" type="button">Done</button>
@@ -1255,6 +1257,7 @@ function Ut() {
1255
1257
  canvas: p(".nf-canvas"),
1256
1258
  text: p(".nf-text"),
1257
1259
  author: p(".nf-author"),
1260
+ kindRow: p(".nf-kind-row"),
1258
1261
  kind: p(".nf-kind"),
1259
1262
  privacy: p(".nf-privacy"),
1260
1263
  privacySummary: p(".nf-privacy-summary"),
@@ -1772,7 +1775,9 @@ function _e() {
1772
1775
  diagnostics: N,
1773
1776
  logs: O
1774
1777
  });
1775
- s.privacyText.textContent = t, s.privacyText.hidden = !t, s.privacy.hidden = N.length === 0 && O.length === 0, s.privacyChange.hidden = !1;
1778
+ s.privacyText.textContent = t, s.privacyText.hidden = !t;
1779
+ const e = N.length === 0 && O.length === 0;
1780
+ s.privacySummary && (s.privacySummary.hidden = e), s.privacy.hidden = e, s.privacyChange.hidden = !1;
1776
1781
  }
1777
1782
  function Ve(t, e, n) {
1778
1783
  return `<label class="nf-privacy-toggle">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makefully/notefully",
3
- "version": "0.1.38",
3
+ "version": "0.1.39",
4
4
  "description": "In-app feedback widget for web apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/notefully.js",