superdoc 2.20.1-next.8 → 2.21.0-next.1

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/style.css CHANGED
@@ -1891,28 +1891,28 @@ img[data-v-c95b2073] {
1891
1891
  background-color: #1355ff7f;
1892
1892
  }
1893
1893
 
1894
- .comment-placeholder[data-v-d8d03209] {
1894
+ .comment-placeholder[data-v-8262096d] {
1895
1895
  position: absolute;
1896
1896
  width: 300px;
1897
1897
  transition: top 0.3s ease;
1898
1898
  }
1899
- .comment-placeholder.is-direct-decision-continuity-target[data-v-d8d03209] .overflow-menu {
1899
+ .comment-placeholder.is-direct-decision-continuity-target[data-v-8262096d] .overflow-menu {
1900
1900
  opacity: 1;
1901
1901
  pointer-events: auto;
1902
1902
  }
1903
- .floating-comment[data-v-d8d03209] {
1903
+ .floating-comment[data-v-8262096d] {
1904
1904
  position: relative;
1905
1905
  display: block;
1906
1906
  min-width: 300px;
1907
1907
  }
1908
- .sidebar-container[data-v-d8d03209] {
1908
+ .sidebar-container[data-v-8262096d] {
1909
1909
  position: absolute;
1910
1910
  width: 300px;
1911
1911
  min-height: 300px;
1912
1912
  transition: transform 0.3s ease;
1913
1913
  will-change: transform;
1914
1914
  }
1915
- .section-wrapper[data-v-d8d03209] {
1915
+ .section-wrapper[data-v-8262096d] {
1916
1916
  position: relative;
1917
1917
  min-height: 100%;
1918
1918
  width: 300px;
@@ -2340,34 +2340,34 @@ img[data-v-c95b2073] {
2340
2340
  pointer-events: auto;
2341
2341
  }
2342
2342
 
2343
- .superdoc[data-v-e476c448] {
2343
+ .superdoc[data-v-0d8ce95e] {
2344
2344
  display: flex;
2345
2345
  position: relative;
2346
2346
  }
2347
- .right-sidebar[data-v-e476c448] {
2347
+ .right-sidebar[data-v-0d8ce95e] {
2348
2348
  min-width: 320px;
2349
2349
  height: 100%;
2350
2350
  }
2351
- .floating-comments[data-v-e476c448] {
2351
+ .floating-comments[data-v-0d8ce95e] {
2352
2352
  min-width: 300px;
2353
2353
  width: 300px;
2354
2354
  height: 100%;
2355
2355
  overflow: visible;
2356
2356
  }
2357
- .superdoc__layers[data-v-e476c448] {
2357
+ .superdoc__layers[data-v-0d8ce95e] {
2358
2358
  height: 100%;
2359
2359
  position: relative;
2360
2360
  box-sizing: border-box;
2361
2361
  }
2362
- .superdoc__document[data-v-e476c448] {
2362
+ .superdoc__document[data-v-0d8ce95e] {
2363
2363
  width: 100%;
2364
2364
  position: relative;
2365
2365
  }
2366
- .superdoc__sub-document[data-v-e476c448] {
2366
+ .superdoc__sub-document[data-v-0d8ce95e] {
2367
2367
  width: 100%;
2368
2368
  position: relative;
2369
2369
  }
2370
- .superdoc__selection-layer[data-v-e476c448] {
2370
+ .superdoc__selection-layer[data-v-0d8ce95e] {
2371
2371
  position: absolute;
2372
2372
  min-width: 100%;
2373
2373
  min-height: 100%;
@@ -2378,13 +2378,13 @@ img[data-v-c95b2073] {
2378
2378
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
2379
2379
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
2380
2380
  clickable, and below the selection layer (z-index 10). */
2381
- .superdoc__whiteboard-layer[data-v-e476c448] {
2381
+ .superdoc__whiteboard-layer[data-v-0d8ce95e] {
2382
2382
  z-index: 4;
2383
2383
  }
2384
- .superdoc__temp-selection[data-v-e476c448] {
2384
+ .superdoc__temp-selection[data-v-0d8ce95e] {
2385
2385
  position: absolute;
2386
2386
  }
2387
- .superdoc__right-sidebar[data-v-e476c448] {
2387
+ .superdoc__right-sidebar[data-v-0d8ce95e] {
2388
2388
  width: 320px;
2389
2389
  min-width: 320px;
2390
2390
  padding: 0 10px;
@@ -2392,7 +2392,7 @@ img[data-v-c95b2073] {
2392
2392
  position: relative;
2393
2393
  z-index: 2;
2394
2394
  }
2395
- .superdoc__compact-comment-popover[data-v-e476c448] {
2395
+ .superdoc__compact-comment-popover[data-v-0d8ce95e] {
2396
2396
  position: absolute;
2397
2397
  top: 12px;
2398
2398
  right: 12px;
@@ -2401,14 +2401,14 @@ img[data-v-c95b2073] {
2401
2401
  }
2402
2402
 
2403
2403
  /* Tools styles */
2404
- .tools[data-v-e476c448] {
2404
+ .tools[data-v-0d8ce95e] {
2405
2405
  position: absolute;
2406
2406
  z-index: 3;
2407
2407
  display: flex;
2408
2408
  flex-direction: column;
2409
2409
  gap: var(--sd-ui-tools-gap, 6px);
2410
2410
  }
2411
- .tools-item[data-v-e476c448] {
2411
+ .tools-item[data-v-0d8ce95e] {
2412
2412
  display: flex;
2413
2413
  align-items: center;
2414
2414
  justify-content: center;
@@ -2419,10 +2419,10 @@ img[data-v-c95b2073] {
2419
2419
  cursor: pointer;
2420
2420
  position: relative;
2421
2421
  }
2422
- .tools-item i[data-v-e476c448] {
2422
+ .tools-item i[data-v-0d8ce95e] {
2423
2423
  cursor: pointer;
2424
2424
  }
2425
- .superdoc__tools-icon[data-v-e476c448] {
2425
+ .superdoc__tools-icon[data-v-0d8ce95e] {
2426
2426
  width: var(--sd-ui-tools-icon-size, 20px);
2427
2427
  height: var(--sd-ui-tools-icon-size, 20px);
2428
2428
  flex-shrink: 0;
@@ -2437,22 +2437,22 @@ img[data-v-c95b2073] {
2437
2437
 
2438
2438
  /* 834px is iPad screen size in portrait orientation */
2439
2439
  @media (max-width: 834px) {
2440
- .superdoc .superdoc__layers[data-v-e476c448] {
2440
+ .superdoc .superdoc__layers[data-v-0d8ce95e] {
2441
2441
  margin: 0;
2442
2442
  border: 0 !important;
2443
2443
  box-shadow: none;
2444
2444
  }
2445
- .superdoc__sub-document[data-v-e476c448] {
2445
+ .superdoc__sub-document[data-v-0d8ce95e] {
2446
2446
  max-width: 100%;
2447
2447
  }
2448
- .superdoc__right-sidebar[data-v-e476c448] {
2448
+ .superdoc__right-sidebar[data-v-0d8ce95e] {
2449
2449
  padding: 10px;
2450
2450
  position: relative;
2451
2451
  }
2452
2452
  }
2453
2453
 
2454
2454
  /* AI Writer styles */
2455
- .ai-writer-container[data-v-e476c448] {
2455
+ .ai-writer-container[data-v-0d8ce95e] {
2456
2456
  position: fixed;
2457
2457
  z-index: 1000;
2458
2458
  background: white;
@@ -2468,10 +2468,10 @@ img[data-v-c95b2073] {
2468
2468
  transform: translateY(-50%);
2469
2469
  z-index: 50;
2470
2470
  } */
2471
- .ai-tool > svg[data-v-e476c448] {
2471
+ .ai-tool > svg[data-v-0d8ce95e] {
2472
2472
  fill: transparent;
2473
2473
  }
2474
- .ai-tool[data-v-e476c448]::before {
2474
+ .ai-tool[data-v-0d8ce95e]::before {
2475
2475
  content: '';
2476
2476
  position: absolute;
2477
2477
  width: 20px;
@@ -2492,7 +2492,7 @@ img[data-v-c95b2073] {
2492
2492
  filter: brightness(1.2);
2493
2493
  transition: filter 0.2s ease;
2494
2494
  }
2495
- .ai-tool[data-v-e476c448]:hover::before {
2495
+ .ai-tool[data-v-0d8ce95e]:hover::before {
2496
2496
  filter: brightness(1.3);
2497
2497
  }
2498
2498
 
@@ -1891,28 +1891,28 @@ img[data-v-c95b2073] {
1891
1891
  background-color: #1355ff7f;
1892
1892
  }
1893
1893
 
1894
- .comment-placeholder[data-v-d8d03209] {
1894
+ .comment-placeholder[data-v-8262096d] {
1895
1895
  position: absolute;
1896
1896
  width: 300px;
1897
1897
  transition: top 0.3s ease;
1898
1898
  }
1899
- .comment-placeholder.is-direct-decision-continuity-target[data-v-d8d03209] .overflow-menu {
1899
+ .comment-placeholder.is-direct-decision-continuity-target[data-v-8262096d] .overflow-menu {
1900
1900
  opacity: 1;
1901
1901
  pointer-events: auto;
1902
1902
  }
1903
- .floating-comment[data-v-d8d03209] {
1903
+ .floating-comment[data-v-8262096d] {
1904
1904
  position: relative;
1905
1905
  display: block;
1906
1906
  min-width: 300px;
1907
1907
  }
1908
- .sidebar-container[data-v-d8d03209] {
1908
+ .sidebar-container[data-v-8262096d] {
1909
1909
  position: absolute;
1910
1910
  width: 300px;
1911
1911
  min-height: 300px;
1912
1912
  transition: transform 0.3s ease;
1913
1913
  will-change: transform;
1914
1914
  }
1915
- .section-wrapper[data-v-d8d03209] {
1915
+ .section-wrapper[data-v-8262096d] {
1916
1916
  position: relative;
1917
1917
  min-height: 100%;
1918
1918
  width: 300px;
@@ -2340,34 +2340,34 @@ img[data-v-c95b2073] {
2340
2340
  pointer-events: auto;
2341
2341
  }
2342
2342
 
2343
- .superdoc[data-v-e476c448] {
2343
+ .superdoc[data-v-0d8ce95e] {
2344
2344
  display: flex;
2345
2345
  position: relative;
2346
2346
  }
2347
- .right-sidebar[data-v-e476c448] {
2347
+ .right-sidebar[data-v-0d8ce95e] {
2348
2348
  min-width: 320px;
2349
2349
  height: 100%;
2350
2350
  }
2351
- .floating-comments[data-v-e476c448] {
2351
+ .floating-comments[data-v-0d8ce95e] {
2352
2352
  min-width: 300px;
2353
2353
  width: 300px;
2354
2354
  height: 100%;
2355
2355
  overflow: visible;
2356
2356
  }
2357
- .superdoc__layers[data-v-e476c448] {
2357
+ .superdoc__layers[data-v-0d8ce95e] {
2358
2358
  height: 100%;
2359
2359
  position: relative;
2360
2360
  box-sizing: border-box;
2361
2361
  }
2362
- .superdoc__document[data-v-e476c448] {
2362
+ .superdoc__document[data-v-0d8ce95e] {
2363
2363
  width: 100%;
2364
2364
  position: relative;
2365
2365
  }
2366
- .superdoc__sub-document[data-v-e476c448] {
2366
+ .superdoc__sub-document[data-v-0d8ce95e] {
2367
2367
  width: 100%;
2368
2368
  position: relative;
2369
2369
  }
2370
- .superdoc__selection-layer[data-v-e476c448] {
2370
+ .superdoc__selection-layer[data-v-0d8ce95e] {
2371
2371
  position: absolute;
2372
2372
  min-width: 100%;
2373
2373
  min-height: 100%;
@@ -2378,13 +2378,13 @@ img[data-v-c95b2073] {
2378
2378
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
2379
2379
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
2380
2380
  clickable, and below the selection layer (z-index 10). */
2381
- .superdoc__whiteboard-layer[data-v-e476c448] {
2381
+ .superdoc__whiteboard-layer[data-v-0d8ce95e] {
2382
2382
  z-index: 4;
2383
2383
  }
2384
- .superdoc__temp-selection[data-v-e476c448] {
2384
+ .superdoc__temp-selection[data-v-0d8ce95e] {
2385
2385
  position: absolute;
2386
2386
  }
2387
- .superdoc__right-sidebar[data-v-e476c448] {
2387
+ .superdoc__right-sidebar[data-v-0d8ce95e] {
2388
2388
  width: 320px;
2389
2389
  min-width: 320px;
2390
2390
  padding: 0 10px;
@@ -2392,7 +2392,7 @@ img[data-v-c95b2073] {
2392
2392
  position: relative;
2393
2393
  z-index: 2;
2394
2394
  }
2395
- .superdoc__compact-comment-popover[data-v-e476c448] {
2395
+ .superdoc__compact-comment-popover[data-v-0d8ce95e] {
2396
2396
  position: absolute;
2397
2397
  top: 12px;
2398
2398
  right: 12px;
@@ -2401,14 +2401,14 @@ img[data-v-c95b2073] {
2401
2401
  }
2402
2402
 
2403
2403
  /* Tools styles */
2404
- .tools[data-v-e476c448] {
2404
+ .tools[data-v-0d8ce95e] {
2405
2405
  position: absolute;
2406
2406
  z-index: 3;
2407
2407
  display: flex;
2408
2408
  flex-direction: column;
2409
2409
  gap: var(--sd-ui-tools-gap, 6px);
2410
2410
  }
2411
- .tools-item[data-v-e476c448] {
2411
+ .tools-item[data-v-0d8ce95e] {
2412
2412
  display: flex;
2413
2413
  align-items: center;
2414
2414
  justify-content: center;
@@ -2419,10 +2419,10 @@ img[data-v-c95b2073] {
2419
2419
  cursor: pointer;
2420
2420
  position: relative;
2421
2421
  }
2422
- .tools-item i[data-v-e476c448] {
2422
+ .tools-item i[data-v-0d8ce95e] {
2423
2423
  cursor: pointer;
2424
2424
  }
2425
- .superdoc__tools-icon[data-v-e476c448] {
2425
+ .superdoc__tools-icon[data-v-0d8ce95e] {
2426
2426
  width: var(--sd-ui-tools-icon-size, 20px);
2427
2427
  height: var(--sd-ui-tools-icon-size, 20px);
2428
2428
  flex-shrink: 0;
@@ -2437,22 +2437,22 @@ img[data-v-c95b2073] {
2437
2437
 
2438
2438
  /* 834px is iPad screen size in portrait orientation */
2439
2439
  @media (max-width: 834px) {
2440
- .superdoc .superdoc__layers[data-v-e476c448] {
2440
+ .superdoc .superdoc__layers[data-v-0d8ce95e] {
2441
2441
  margin: 0;
2442
2442
  border: 0 !important;
2443
2443
  box-shadow: none;
2444
2444
  }
2445
- .superdoc__sub-document[data-v-e476c448] {
2445
+ .superdoc__sub-document[data-v-0d8ce95e] {
2446
2446
  max-width: 100%;
2447
2447
  }
2448
- .superdoc__right-sidebar[data-v-e476c448] {
2448
+ .superdoc__right-sidebar[data-v-0d8ce95e] {
2449
2449
  padding: 10px;
2450
2450
  position: relative;
2451
2451
  }
2452
2452
  }
2453
2453
 
2454
2454
  /* AI Writer styles */
2455
- .ai-writer-container[data-v-e476c448] {
2455
+ .ai-writer-container[data-v-0d8ce95e] {
2456
2456
  position: fixed;
2457
2457
  z-index: 1000;
2458
2458
  background: white;
@@ -2468,10 +2468,10 @@ img[data-v-c95b2073] {
2468
2468
  transform: translateY(-50%);
2469
2469
  z-index: 50;
2470
2470
  } */
2471
- .ai-tool > svg[data-v-e476c448] {
2471
+ .ai-tool > svg[data-v-0d8ce95e] {
2472
2472
  fill: transparent;
2473
2473
  }
2474
- .ai-tool[data-v-e476c448]::before {
2474
+ .ai-tool[data-v-0d8ce95e]::before {
2475
2475
  content: '';
2476
2476
  position: absolute;
2477
2477
  width: 20px;
@@ -2492,7 +2492,7 @@ img[data-v-c95b2073] {
2492
2492
  filter: brightness(1.2);
2493
2493
  transition: filter 0.2s ease;
2494
2494
  }
2495
- .ai-tool[data-v-e476c448]:hover::before {
2495
+ .ai-tool[data-v-0d8ce95e]:hover::before {
2496
2496
  filter: brightness(1.3);
2497
2497
  }
2498
2498
 
@@ -1,6 +1,12 @@
1
1
  import { SuperDocDiagnostics } from '../../core/types/diagnostics.js';
2
- export declare function createInteractionHistory(owner: object, config: unknown, version: () => string, root: HTMLElement): SuperDocDiagnostics;
2
+ import { WorkflowRecording } from './workflow-recording.js';
3
+ export interface InternalDiagnostics extends SuperDocDiagnostics {
4
+ readonly recording?: WorkflowRecording;
5
+ }
6
+ export declare function isWorkflowRecordingEnabled(config: unknown): boolean;
7
+ export declare function createInteractionHistory(owner: object, config: unknown, version: () => string, root: HTMLElement): InternalDiagnostics;
3
8
  /** Every producer crosses this guard before reading or retaining diagnostic data. */
4
9
  export declare function recordInteraction(owner: object | null | undefined, type: string, read: () => unknown): void;
5
10
  export declare function beginInteraction(owner: object, type: string, read: () => Record<string, unknown>): string | undefined;
6
11
  export declare function closeInteractionHistory(owner: object): void;
12
+ export declare function getWorkflowRecording(owner: object): WorkflowRecording | undefined;
@@ -0,0 +1,73 @@
1
+ export interface WorkflowRecordingOptions {
2
+ /** Opt in to literal keys and input text. Defaults to false. */
3
+ captureContent?: boolean;
4
+ /** Defaults to 20,000; accepted range 1–100,000. */
5
+ maxEvents?: number;
6
+ /** Serialized UTF-16 budget. Defaults to 8 MiB; maximum 64 MiB. */
7
+ maxBytes?: number;
8
+ }
9
+ export interface WorkflowRecordingEvent {
10
+ sequence: number;
11
+ /** Milliseconds since recording started, on the browser's monotonic clock. */
12
+ atMs: number;
13
+ type: string;
14
+ data: Record<string, unknown>;
15
+ }
16
+ export interface WorkflowRecordingSnapshot {
17
+ schemaVersion: 1;
18
+ sessionId: string;
19
+ version: string;
20
+ status: 'recording' | 'stopped' | 'incomplete';
21
+ startedAt: number;
22
+ timeOrigin: number;
23
+ startTimeMs: number;
24
+ durationMs: number;
25
+ captureContent: boolean;
26
+ viewport: {
27
+ width: number;
28
+ height: number;
29
+ devicePixelRatio: number;
30
+ };
31
+ events: WorkflowRecordingEvent[];
32
+ retainedBytes: number;
33
+ /** Known unsupported inputs. An empty list does not guarantee replay in a different environment. */
34
+ replayUnsupportedReasons: string[];
35
+ /** Engine work still queued or executing at the end of capture; inputs remain independently recorded. */
36
+ pendingIntentIds: string[];
37
+ }
38
+ export interface WorkflowRecording {
39
+ readonly active: boolean;
40
+ /** Starts a new session. Throws if a session is active or the instance is destroyed. */
41
+ start(options?: WorkflowRecordingOptions): WorkflowRecordingSnapshot;
42
+ stop(): WorkflowRecordingSnapshot | null;
43
+ /** Detached data; no editor or worker queries. */
44
+ getSnapshot(): WorkflowRecordingSnapshot | null;
45
+ }
46
+ export declare class WorkflowRecorder {
47
+ private readonly root;
48
+ private readonly version;
49
+ private session;
50
+ private events;
51
+ private startMs;
52
+ private maxEvents;
53
+ private maxBytes;
54
+ private closed;
55
+ private pendingIntents;
56
+ private heldKeys;
57
+ private heldButtons;
58
+ private cleanups;
59
+ readonly api: WorkflowRecording;
60
+ constructor(root: HTMLElement, version: () => string);
61
+ private attachInputs;
62
+ private detachInputs;
63
+ get active(): boolean;
64
+ private start;
65
+ observe(type: string, read: () => unknown): void;
66
+ private unsupported;
67
+ private fail;
68
+ private input;
69
+ private clearHeldInput;
70
+ private stop;
71
+ private snapshot;
72
+ close(): void;
73
+ }
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./chunks/rolldown-runtime-74VwNCz7.cjs");
3
3
  const require_blank_docx = require("./chunks/blank-docx-BuFAbRjs.cjs");
4
- const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-j8Qm5SYa.cjs");
4
+ const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-yKesgn9b.cjs");
5
5
  const require_eventemitter3 = require("./chunks/eventemitter3-C_TAnXOl.cjs");
6
6
  const require_uuid = require("./chunks/uuid-BhG0ngwk.cjs");
7
7
  const require__plugin_vue_export_helper = require("./chunks/_plugin-vue_export-helper-CYxINHh_.cjs");
@@ -316,7 +316,7 @@ var shuffleArray = (array) => {
316
316
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
317
317
  function getSuperdocVersion() {
318
318
  try {
319
- return "2.20.1-next.8";
319
+ return "2.21.0-next.1";
320
320
  } catch {
321
321
  return "unknown";
322
322
  }
@@ -15440,7 +15440,10 @@ var _sfc_main$31 = {
15440
15440
  viewportBottom: viewportRange.bottom
15441
15441
  }) : null;
15442
15442
  if (offscreenTop == null) collisionPositions.push(position);
15443
- else position.top = offscreenTop;
15443
+ else {
15444
+ position.top = offscreenTop;
15445
+ position.isOffscreenReviewCard = true;
15446
+ }
15444
15447
  }
15445
15448
  const activeIndex = activeKey ? collisionPositions.findIndex((p) => p.id === activeKey) : -1;
15446
15449
  resolveCollisions(collisionPositions, activeIndex, 15);
@@ -15965,7 +15968,7 @@ var _sfc_main$31 = {
15965
15968
  "data-comment-page-index": pos.pageIndex ?? "",
15966
15969
  class: require__plugin_vue_export_helper.normalizeClass([{ "is-direct-decision-continuity-target": pos.id === directDecisionContinuityTargetId.value }, "comment-placeholder"]),
15967
15970
  style: require__plugin_vue_export_helper.normalizeStyle({
15968
- top: pos.top + "px",
15971
+ top: (pos.isOffscreenReviewCard ? pos.top - sidebarOffsetY.value : pos.top) + "px",
15969
15972
  height: pos.height + "px",
15970
15973
  transition: disableInstantLayoutTransitions.value ? "none" : void 0
15971
15974
  })
@@ -15993,7 +15996,7 @@ var _sfc_main$31 = {
15993
15996
  };
15994
15997
  }
15995
15998
  };
15996
- var FloatingComments_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$31, [["__scopeId", "data-v-d8d03209"]]);
15999
+ var FloatingComments_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$31, [["__scopeId", "data-v-8262096d"]]);
15997
16000
  //#endregion
15998
16001
  //#region src/components/CommentsLayer/PdfCommentsLayer.vue
15999
16002
  var _hoisted_1$23 = {
@@ -23412,6 +23415,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23412
23415
  const v2Collaboration = collaborationResolution.state === "valid" ? collaborationResolution.config : null;
23413
23416
  const collaborationPreflightFailure = proxy.$superdoc.config.v2CollaborationPreflightFailure ?? (collaborationResolution.state === "invalid" ? collaborationResolution.failure : null);
23414
23417
  return {
23418
+ ...require_create_super_doc_ui.isWorkflowRecordingEnabled(proxy.$superdoc.config) ? { isInteractionRecording: () => require_create_super_doc_ui.getWorkflowRecording(proxy.$superdoc)?.active === true } : {},
23415
23419
  isDebug: proxy.$superdoc.config.isDebug || false,
23416
23420
  documentId: doc.id,
23417
23421
  user: proxy.$superdoc.user,
@@ -24537,7 +24541,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24537
24541
  ], 38);
24538
24542
  };
24539
24543
  }
24540
- }, [["__scopeId", "data-v-e476c448"]]);
24544
+ }, [["__scopeId", "data-v-0d8ce95e"]]);
24541
24545
  //#endregion
24542
24546
  //#region src/core/create-app.js
24543
24547
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -46354,7 +46358,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46354
46358
  this.config.colors = shuffleArray(this.config.colors);
46355
46359
  this.userColorMap = /* @__PURE__ */ new Map();
46356
46360
  this.colorIndex = 0;
46357
- this.version = "2.20.1-next.8";
46361
+ this.version = "2.21.0-next.1";
46358
46362
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46359
46363
  this.superdocId = config.superdocId || require_uuid.v4();
46360
46364
  this.colors = this.config.colors ?? [];
@@ -1,6 +1,6 @@
1
1
  import { i as __toESM$2 } from "./chunks/rolldown-runtime-0pSA04fp.es.js";
2
2
  import { t as blank_default } from "./chunks/blank-docx-DzQccOlW.es.js";
3
- import { c as createImageFilePicker, d as DOM_CLASS_NAMES, f as closeInteractionHistory, i as registerFirstPartyCommandMutation, l as resolveImageSrc, m as recordInteraction, n as executeFirstPartyCommandAsync, o as applyV2CommentInvalidationFromMutation, p as createInteractionHistory, r as readFirstPartyPageNumbers, s as getV2TrackedChangeMutationImpact, t as createSuperDocUI } from "./chunks/create-super-doc-ui-Cfwszc3b.es.js";
3
+ import { c as createImageFilePicker, d as DOM_CLASS_NAMES, f as closeInteractionHistory, g as recordInteraction, h as isWorkflowRecordingEnabled, i as registerFirstPartyCommandMutation, l as resolveImageSrc, m as getWorkflowRecording, n as executeFirstPartyCommandAsync, o as applyV2CommentInvalidationFromMutation, p as createInteractionHistory, r as readFirstPartyPageNumbers, s as getV2TrackedChangeMutationImpact, t as createSuperDocUI } from "./chunks/create-super-doc-ui-0CZTlOvl.es.js";
4
4
  import { t as import_eventemitter3 } from "./chunks/eventemitter3-DEIiXiH2.es.js";
5
5
  import { t as v4 } from "./chunks/uuid-H0Xcmmhy.es.js";
6
6
  import { $ as watch$1, A as onActivated, B as resolveDirective, C as isRef$1, D as normalizeClass, E as nextTick, F as openBlock, G as toRef, H as shallowRef$1, I as reactive, J as useAttrs, K as toRefs, L as ref, M as onDeactivated, N as onMounted, O as normalizeProps, P as onScopeDispose$1, Q as vModelText, R as renderList, S as isReactive$1, T as mergeProps, U as toDisplayString, V as resolveDynamicComponent, W as toRaw$2, X as vModelCheckbox, Y as useSlots, Z as vModelSelect, _ as getCurrentInstance, a as computed$1, b as hasInjectionContext, c as createCommentVNode, d as createStaticVNode, et as withCtx, f as createTextVNode, g as effectScope, h as defineComponent, i as Transition, j as onBeforeUnmount, k as normalizeStyle, l as createElementBlock, m as defineAsyncComponent, n as Fragment, nt as withKeys, o as createApp, p as createVNode, q as unref, r as Teleport, rt as withModifiers, s as createBlock, t as _plugin_vue_export_helper_default, tt as withDirectives, u as createElementVNode, v as getCurrentScope, w as markRaw, x as inject$1, y as h, z as renderSlot } from "./chunks/_plugin-vue_export-helper-DHiJKCsy.es.js";
@@ -314,7 +314,7 @@ var shuffleArray = (array) => {
314
314
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
315
315
  function getSuperdocVersion() {
316
316
  try {
317
- return "2.20.1-next.8";
317
+ return "2.21.0-next.1";
318
318
  } catch {
319
319
  return "unknown";
320
320
  }
@@ -15430,7 +15430,10 @@ var FloatingComments_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
15430
15430
  viewportBottom: viewportRange.bottom
15431
15431
  }) : null;
15432
15432
  if (offscreenTop == null) collisionPositions.push(position);
15433
- else position.top = offscreenTop;
15433
+ else {
15434
+ position.top = offscreenTop;
15435
+ position.isOffscreenReviewCard = true;
15436
+ }
15434
15437
  }
15435
15438
  const activeIndex = activeKey ? collisionPositions.findIndex((p) => p.id === activeKey) : -1;
15436
15439
  resolveCollisions(collisionPositions, activeIndex, 15);
@@ -15955,7 +15958,7 @@ var FloatingComments_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
15955
15958
  "data-comment-page-index": pos.pageIndex ?? "",
15956
15959
  class: normalizeClass([{ "is-direct-decision-continuity-target": pos.id === directDecisionContinuityTargetId.value }, "comment-placeholder"]),
15957
15960
  style: normalizeStyle({
15958
- top: pos.top + "px",
15961
+ top: (pos.isOffscreenReviewCard ? pos.top - sidebarOffsetY.value : pos.top) + "px",
15959
15962
  height: pos.height + "px",
15960
15963
  transition: disableInstantLayoutTransitions.value ? "none" : void 0
15961
15964
  })
@@ -15982,7 +15985,7 @@ var FloatingComments_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
15982
15985
  }), 128))], 4)], 36);
15983
15986
  };
15984
15987
  }
15985
- }, [["__scopeId", "data-v-d8d03209"]]);
15988
+ }, [["__scopeId", "data-v-8262096d"]]);
15986
15989
  //#endregion
15987
15990
  //#region src/components/CommentsLayer/PdfCommentsLayer.vue
15988
15991
  var _hoisted_1$23 = {
@@ -23371,6 +23374,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23371
23374
  const v2Collaboration = collaborationResolution.state === "valid" ? collaborationResolution.config : null;
23372
23375
  const collaborationPreflightFailure = proxy.$superdoc.config.v2CollaborationPreflightFailure ?? (collaborationResolution.state === "invalid" ? collaborationResolution.failure : null);
23373
23376
  return {
23377
+ ...isWorkflowRecordingEnabled(proxy.$superdoc.config) ? { isInteractionRecording: () => getWorkflowRecording(proxy.$superdoc)?.active === true } : {},
23374
23378
  isDebug: proxy.$superdoc.config.isDebug || false,
23375
23379
  documentId: doc.id,
23376
23380
  user: proxy.$superdoc.user,
@@ -24496,7 +24500,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
24496
24500
  ], 38);
24497
24501
  };
24498
24502
  }
24499
- }, [["__scopeId", "data-v-e476c448"]]);
24503
+ }, [["__scopeId", "data-v-0d8ce95e"]]);
24500
24504
  //#endregion
24501
24505
  //#region src/core/create-app.js
24502
24506
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -46283,7 +46287,7 @@ var SuperDoc = class extends import_eventemitter3.default {
46283
46287
  this.config.colors = shuffleArray(this.config.colors);
46284
46288
  this.userColorMap = /* @__PURE__ */ new Map();
46285
46289
  this.colorIndex = 0;
46286
- this.version = "2.20.1-next.8";
46290
+ this.version = "2.21.0-next.1";
46287
46291
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46288
46292
  this.superdocId = config.superdocId || v4();
46289
46293
  this.colors = this.config.colors ?? [];