@docmentis/udoc-viewer 0.3.0 → 0.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docmentis/udoc-viewer",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Universal document viewer for PDF and PPTX files",
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAEH,KAAK,WAAW,EAOnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AA2U7D,wBAAgB,cAAc;;oBAgDH,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,YAAY,KAAG,IAAI;mBA8lB1E,IAAI;EAoB3B"}
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAEH,KAAK,WAAW,EAOnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAmZ7D,wBAAgB,cAAc;;oBAoKH,WAAW,SAAS,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,YAAY,KAAG,IAAI;mBAwsB1E,IAAI;EAsB3B"}
@@ -112,7 +112,21 @@ function getScrollbarSize() {
112
112
  cachedScrollbarSize = { width, height };
113
113
  return cachedScrollbarSize;
114
114
  }
115
- function computeScale(slice, metrics, spreads) {
115
+ /**
116
+ * Computes the zoom scale for fit modes.
117
+ *
118
+ * For fit-spread-width mode, we predict whether a vertical scrollbar will be needed
119
+ * and adjust the available width accordingly. This prevents the feedback loop where:
120
+ * 1. Scale is calculated based on viewport width
121
+ * 2. Content is taller than viewport, scrollbar appears
122
+ * 3. Scrollbar reduces viewport width, causing recalculation
123
+ *
124
+ * @param slice - Viewport state slice
125
+ * @param metrics - Current viewport metrics
126
+ * @param spreads - Array of spreads to layout
127
+ * @param scrollbarVisible - Whether vertical scrollbar is currently visible
128
+ */
129
+ function computeScale(slice, metrics, spreads, scrollbarVisible) {
116
130
  if (slice.zoomMode === "custom")
117
131
  return slice.zoom;
118
132
  if (metrics.innerWidth <= 0 || metrics.innerHeight <= 0)
@@ -132,7 +146,13 @@ function computeScale(slice, metrics, spreads) {
132
146
  // Round to the nearest device pixel to avoid scrollbar feedback loops.
133
147
  const snappedSpacing = snapToDevice(slice.spreadSpacing);
134
148
  const snappedViewportHeight = snapToDevice(metrics.innerHeight);
135
- const snappedViewportWidth = snapToDevice(metrics.innerWidth);
149
+ const scrollbar = getScrollbarSize();
150
+ // Calculate the "base" viewport width (without scrollbar).
151
+ // If scrollbar is currently visible, metrics.innerWidth already excludes it,
152
+ // so we add it back to get the full available width.
153
+ const baseViewportWidth = scrollbarVisible
154
+ ? snapToDevice(metrics.innerWidth + scrollbar.width)
155
+ : snapToDevice(metrics.innerWidth);
136
156
  const verticalSpacing = snappedSpacing * 2;
137
157
  // Add 1 pixel buffer to compensate for device pixel rounding in layout calculations.
138
158
  // Without this, the spread may be slightly smaller than the viewport, allowing
@@ -140,22 +160,51 @@ function computeScale(slice, metrics, spreads) {
140
160
  // The same buffer is used in spread mode for consistency when switching modes.
141
161
  // Scrollbar overflow in spread mode is handled by applySingleLayout using viewport height.
142
162
  const targetHeight = Math.max(0, snappedViewportHeight - verticalSpacing + 1);
143
- const widthScale = snappedViewportWidth / maxWidth;
144
- const heightScale = targetHeight / maxHeight;
145
163
  switch (slice.zoomMode) {
146
- case "fit-spread-width":
147
- return widthScale;
164
+ case "fit-spread-width": {
165
+ // Calculate scale assuming full viewport width (no scrollbar)
166
+ const fullWidthScale = baseViewportWidth / maxWidth;
167
+ // Predict if vertical scrollbar will be needed at this scale.
168
+ // For continuous mode: check if total content height exceeds viewport.
169
+ // For spread mode: check if tallest spread + spacing exceeds viewport.
170
+ let needsScrollbar;
171
+ if (slice.scrollMode === "continuous") {
172
+ // In continuous mode, calculate total content height
173
+ // Total height = sum of all spread heights + spacing between spreads
174
+ let totalHeight = 0;
175
+ for (const spread of spreads) {
176
+ const dims = getSpreadDimensions(spread, slice.pageInfos, fullWidthScale, slice.pageSpacing, slice.dpi, slice.pageRotation);
177
+ totalHeight += dims.height;
178
+ }
179
+ totalHeight += snappedSpacing * (spreads.length + 1); // spacing before first, between, and after last
180
+ needsScrollbar = totalHeight > snappedViewportHeight;
181
+ }
182
+ else {
183
+ // In spread mode, check if the tallest spread + spacing exceeds viewport
184
+ const scaledMaxHeight = maxHeight * fullWidthScale;
185
+ needsScrollbar = scaledMaxHeight + verticalSpacing > snappedViewportHeight;
186
+ }
187
+ if (needsScrollbar && scrollbar.width > 0) {
188
+ // Scrollbar will be needed, calculate scale with reduced viewport width
189
+ const adjustedWidth = baseViewportWidth - scrollbar.width;
190
+ return adjustedWidth / maxWidth;
191
+ }
192
+ // No scrollbar needed, use full width
193
+ return fullWidthScale;
194
+ }
148
195
  case "fit-spread-height":
149
- return heightScale;
196
+ // Content fits height by design, no vertical scrollbar needed
197
+ return targetHeight / maxHeight;
150
198
  case "fit-spread":
151
- return Math.min(widthScale, heightScale);
199
+ // Content fits both dimensions by design, no scrollbar needed
200
+ return Math.min(baseViewportWidth / maxWidth, targetHeight / maxHeight);
152
201
  default:
153
202
  return slice.zoom;
154
203
  }
155
204
  }
156
- function buildLayout(slice, metrics) {
205
+ function buildLayout(slice, metrics, scrollbarVisible) {
157
206
  const spreads = calculateSpreads(slice.pageCount, slice.layoutMode);
158
- const scale = computeScale(slice, metrics, spreads);
207
+ const scale = computeScale(slice, metrics, spreads, scrollbarVisible);
159
208
  const layout = calculateSpreadLayouts(spreads, slice.pageInfos, scale, slice.pageSpacing, slice.spreadSpacing, slice.dpi, slice.pageRotation);
160
209
  return {
161
210
  spreads,
@@ -165,12 +214,13 @@ function buildLayout(slice, metrics) {
165
214
  scale
166
215
  };
167
216
  }
168
- function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics, lastScrollMode) {
217
+ function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics) {
169
218
  const metricsChanged = !prevMetrics || !metricsEqual(prevMetrics, nextMetrics);
170
219
  const layoutChanged = !prevSlice ||
171
220
  nextSlice.docId !== prevSlice.docId ||
172
221
  nextSlice.pageCount !== prevSlice.pageCount ||
173
222
  nextSlice.pageInfos !== prevSlice.pageInfos ||
223
+ nextSlice.scrollMode !== prevSlice.scrollMode ||
174
224
  nextSlice.layoutMode !== prevSlice.layoutMode ||
175
225
  nextSlice.zoomMode !== prevSlice.zoomMode ||
176
226
  nextSlice.zoom !== prevSlice.zoom ||
@@ -179,32 +229,23 @@ function computeViewportUpdate(prevSlice, nextSlice, prevMetrics, nextMetrics, l
179
229
  nextSlice.pageSpacing !== prevSlice.pageSpacing ||
180
230
  nextSlice.spreadSpacing !== prevSlice.spreadSpacing ||
181
231
  metricsChanged;
182
- const modeChanged = !prevSlice || nextSlice.scrollMode !== prevSlice.scrollMode;
183
232
  const zoomModeChanged = !prevSlice || nextSlice.zoomMode !== prevSlice.zoomMode;
184
- const fitZoomChanged = nextSlice.zoomMode !== "custom" && (!prevSlice || nextSlice.zoom !== prevSlice.zoom);
185
233
  const spreadsChanged = !prevSlice ||
186
234
  nextSlice.docId !== prevSlice.docId ||
187
235
  nextSlice.pageCount !== prevSlice.pageCount ||
188
236
  nextSlice.pageInfos !== prevSlice.pageInfos ||
189
237
  nextSlice.layoutMode !== prevSlice.layoutMode;
190
238
  const shouldClearSpreads = layoutChanged && spreadsChanged;
191
- const shouldCaptureAnchor = layoutChanged &&
192
- !spreadsChanged &&
193
- nextSlice.scrollMode === "continuous" &&
194
- !fitZoomChanged &&
195
- !zoomModeChanged;
196
- const shouldCenterOnModeChange = modeChanged && lastScrollMode !== null && lastScrollMode !== "continuous";
197
- const shouldScrollToPage = spreadsChanged || zoomModeChanged || fitZoomChanged;
198
- const shouldResetSingleScroll = (modeChanged && lastScrollMode === "continuous") ||
199
- spreadsChanged ||
200
- (layoutChanged && nextSlice.zoomMode !== "custom");
239
+ // Scroll to page on document change or zoom mode change (explicit user actions)
240
+ const shouldScrollToPage = spreadsChanged || zoomModeChanged;
241
+ // Restore tracked viewport position when layout changes but document structure is the same
242
+ // This maintains scroll position across mode switches, zoom changes, and viewport resizes
243
+ const shouldRestorePosition = layoutChanged && !spreadsChanged && !zoomModeChanged;
201
244
  return {
202
245
  layoutChanged,
203
246
  shouldClearSpreads,
204
- shouldCaptureAnchor,
205
- shouldCenterOnModeChange,
206
- shouldScrollToPage,
207
- shouldResetSingleScroll
247
+ shouldRestorePosition,
248
+ shouldScrollToPage
208
249
  };
209
250
  }
210
251
  export function createViewport() {
@@ -216,13 +257,118 @@ export function createViewport() {
216
257
  const container = document.createElement("div");
217
258
  container.className = "udoc-viewport__container";
218
259
  scrollArea.appendChild(container);
219
- const watermark = document.createElement("a");
220
- watermark.className = "udoc-viewport__watermark";
221
- watermark.href = "https://docmentis.com";
222
- watermark.target = "_blank";
223
- watermark.rel = "noopener";
224
- watermark.textContent = "Powered by docMentis";
260
+ // Watermark with tamper protection - random class name on each instantiation
261
+ const wmClass = "_" + Math.random().toString(36).slice(2, 10) + Math.random().toString(36).slice(2, 10);
262
+ const wmHref = "https://docmentis.com";
263
+ const wmText = "Powered by docMentis";
264
+ const wmAttrs = { target: "_blank", rel: "noopener" };
265
+ // Inject dynamic styles for the random class name
266
+ const wmStyle = document.createElement("style");
267
+ wmStyle.textContent = `
268
+ .${wmClass} {
269
+ position: absolute;
270
+ right: 18px;
271
+ bottom: 4px;
272
+ padding: 2px 6px;
273
+ font-size: 12px;
274
+ font-weight: 500;
275
+ color: rgba(0, 0, 0, 0.3);
276
+ text-decoration: none;
277
+ text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
278
+ z-index: 10;
279
+ transition: color 0.15s ease;
280
+ }
281
+ .${wmClass}:hover {
282
+ color: rgba(0, 0, 0, 0.6);
283
+ }
284
+ @media (max-width: 768px) {
285
+ .${wmClass} {
286
+ bottom: 48px;
287
+ right: 10px;
288
+ font-size: 11px;
289
+ }
290
+ }
291
+ `;
292
+ el.appendChild(wmStyle);
293
+ function createWatermark() {
294
+ const wm = document.createElement("a");
295
+ wm.className = wmClass;
296
+ wm.href = wmHref;
297
+ wm.target = wmAttrs.target;
298
+ wm.rel = wmAttrs.rel;
299
+ wm.textContent = wmText;
300
+ return wm;
301
+ }
302
+ let watermark = createWatermark();
225
303
  el.appendChild(watermark);
304
+ // Protect watermark against removal and modification
305
+ const wmObserver = new MutationObserver((mutations) => {
306
+ let needsRestore = false;
307
+ // Check if watermark was removed from DOM
308
+ if (!el.contains(watermark)) {
309
+ needsRestore = true;
310
+ }
311
+ // Check if style element was removed
312
+ if (!el.contains(wmStyle)) {
313
+ el.appendChild(wmStyle);
314
+ }
315
+ // Check for attribute tampering on the watermark itself
316
+ for (const mutation of mutations) {
317
+ if (mutation.target === watermark) {
318
+ if (mutation.type === "attributes") {
319
+ needsRestore = true;
320
+ }
321
+ else if (mutation.type === "characterData" || mutation.type === "childList") {
322
+ needsRestore = true;
323
+ }
324
+ }
325
+ // Check if watermark's text content was changed
326
+ if (mutation.target.parentNode === watermark && mutation.type === "characterData") {
327
+ needsRestore = true;
328
+ }
329
+ }
330
+ if (needsRestore) {
331
+ // Remove old watermark if still in DOM but corrupted
332
+ if (el.contains(watermark)) {
333
+ watermark.remove();
334
+ }
335
+ // Create fresh watermark
336
+ watermark = createWatermark();
337
+ el.appendChild(watermark);
338
+ }
339
+ });
340
+ // Observe the parent for child removal and the watermark for attribute/content changes
341
+ wmObserver.observe(el, { childList: true, subtree: false });
342
+ wmObserver.observe(watermark, {
343
+ attributes: true,
344
+ childList: true,
345
+ characterData: true,
346
+ subtree: true
347
+ });
348
+ // Periodic integrity check (catches CSS-based hiding)
349
+ const wmIntegrityCheck = setInterval(() => {
350
+ // Restore style element if removed
351
+ if (!el.contains(wmStyle)) {
352
+ el.appendChild(wmStyle);
353
+ }
354
+ // Restore watermark if removed
355
+ if (!el.contains(watermark)) {
356
+ watermark = createWatermark();
357
+ el.appendChild(watermark);
358
+ wmObserver.observe(watermark, {
359
+ attributes: true,
360
+ childList: true,
361
+ characterData: true,
362
+ subtree: true
363
+ });
364
+ }
365
+ // Reset any inline style tampering
366
+ watermark.style.cssText = "";
367
+ watermark.removeAttribute("hidden");
368
+ if (watermark.className !== wmClass) {
369
+ watermark.className = wmClass;
370
+ }
371
+ }, 1000);
226
372
  const floatingToolbar = createFloatingToolbar();
227
373
  let workerClient = null;
228
374
  let storeRef = null;
@@ -238,13 +384,15 @@ export function createViewport() {
238
384
  let layoutDirty = false;
239
385
  let lastVisibleRange = { start: 0, end: -1 };
240
386
  let containerSize = { width: 0, height: 0 };
241
- let lastScrollMode = null;
242
387
  let lastOverflowX = null;
243
388
  let lastOverflowY = null;
389
+ // Track the document position at viewport top edge for consistent positioning across mode switches
390
+ let viewportTopPosition = null;
244
391
  let updateRaf = 0;
245
392
  let scrollRaf = 0;
246
393
  let renderDebounceTimer = 0;
247
394
  let rendersPaused = false;
395
+ let resumeRenderAfterResize = false;
248
396
  const RENDER_DEBOUNCE_MS = 50;
249
397
  const unsubEvents = [];
250
398
  function mount(parent, store, wc) {
@@ -261,7 +409,7 @@ export function createViewport() {
261
409
  equality: viewportSliceEqual
262
410
  });
263
411
  unsubScroll = on(scrollArea, "scroll", () => {
264
- if (!currentSlice || currentSlice.scrollMode !== "continuous")
412
+ if (!currentSlice || !layoutState)
265
413
  return;
266
414
  if (scrollRaf)
267
415
  return;
@@ -269,14 +417,22 @@ export function createViewport() {
269
417
  scrollRaf = 0;
270
418
  if (!currentSlice || !layoutState || !lastMetrics)
271
419
  return;
272
- updateVisibleSpreads(currentSlice, lastMetrics, layoutState);
420
+ if (currentSlice.scrollMode === "continuous") {
421
+ updateVisibleSpreads(currentSlice, lastMetrics, layoutState);
422
+ }
423
+ // Keep viewport position tracking up to date on scroll (both modes)
424
+ updateViewportTopPosition(currentSlice, layoutState);
273
425
  });
274
426
  });
275
- // Resize handler: layout updates immediately, but renders are debounced
276
- // to avoid excessive WASM calls during panel animations
427
+ // Resize handler: layout updates immediately, but renders are only paused
428
+ // when resize events keep firing (e.g. dragging panel width). This avoids
429
+ // a one-off "flash" when panels are simply toggled.
277
430
  const handleResize = () => {
278
- // Pause renders during resize
279
- rendersPaused = true;
431
+ const isOngoingResize = renderDebounceTimer !== 0;
432
+ if (isOngoingResize) {
433
+ rendersPaused = true;
434
+ resumeRenderAfterResize = true;
435
+ }
280
436
  // Clear any pending render timer
281
437
  if (renderDebounceTimer) {
282
438
  clearTimeout(renderDebounceTimer);
@@ -284,9 +440,12 @@ export function createViewport() {
284
440
  // Schedule render after resize settles
285
441
  renderDebounceTimer = window.setTimeout(() => {
286
442
  renderDebounceTimer = 0;
287
- rendersPaused = false;
288
- // Trigger re-render of visible spreads
289
- scheduleUpdate();
443
+ if (resumeRenderAfterResize) {
444
+ resumeRenderAfterResize = false;
445
+ rendersPaused = false;
446
+ // Trigger re-render of visible spreads
447
+ scheduleUpdate();
448
+ }
290
449
  }, RENDER_DEBOUNCE_MS);
291
450
  // Layout updates immediately
292
451
  scheduleUpdate();
@@ -420,57 +579,71 @@ export function createViewport() {
420
579
  scrollArea.style.overflowY = "hidden";
421
580
  layoutState = null;
422
581
  lastVisibleRange = { start: 0, end: -1 };
582
+ viewportTopPosition = null;
423
583
  syncEffectiveZoom(slice, null);
424
584
  lastSlice = slice;
425
585
  lastMetrics = metrics;
426
- lastScrollMode = slice.scrollMode;
427
586
  return;
428
587
  }
429
- const plan = computeViewportUpdate(lastSlice, slice, lastMetrics, metrics, lastScrollMode);
588
+ const plan = computeViewportUpdate(lastSlice, slice, lastMetrics, metrics);
430
589
  if (plan.shouldClearSpreads) {
431
590
  clearSpreads();
432
591
  lastVisibleRange = { start: 0, end: -1 };
592
+ viewportTopPosition = null;
433
593
  }
434
- const anchor = (plan.shouldCaptureAnchor && layoutState)
435
- ? captureScrollAnchor(metrics, layoutState)
436
- : null;
437
594
  if (plan.layoutChanged || !layoutState) {
438
- layoutState = buildLayout(slice, metrics);
595
+ layoutState = buildLayout(slice, metrics, lastOverflowY ?? false);
439
596
  layoutDirty = true;
440
- // Only update lastMetrics when layout rebuilds, so small changes accumulate
441
- // until they exceed the epsilon threshold (important for fit-page modes)
442
597
  lastMetrics = metrics;
443
598
  }
444
599
  syncEffectiveZoom(slice, layoutState);
445
600
  if (slice.scrollMode === "continuous") {
446
601
  applyContinuousLayout(metrics, layoutState);
447
- if (plan.shouldCenterOnModeChange) {
448
- // When switching from single to continuous, center the page to maintain position
449
- scrollToPage(slice.page, metrics, true);
450
- }
451
- else if (plan.shouldScrollToPage) {
602
+ if (plan.shouldScrollToPage) {
452
603
  scrollToPage(slice.page, metrics);
453
604
  }
454
- else if (anchor) {
455
- restoreScrollAnchor(anchor, metrics);
605
+ else if (plan.shouldRestorePosition && viewportTopPosition) {
606
+ restoreViewportPosition(viewportTopPosition, metrics, layoutState);
456
607
  }
457
608
  updateVisibleSpreads(slice, metrics, layoutState);
458
609
  }
459
610
  else {
460
611
  applySingleLayout(slice, metrics, layoutState);
461
- if (plan.shouldResetSingleScroll) {
612
+ if (plan.shouldScrollToPage) {
462
613
  scrollArea.scrollTop = 0;
463
614
  scrollArea.scrollLeft = 0;
464
- // Reset overflow state when switching to spread mode to avoid
465
- // hysteresis from continuous mode keeping scrollbar visible
615
+ lastOverflowX = null;
616
+ lastOverflowY = null;
617
+ }
618
+ else if (plan.shouldRestorePosition && viewportTopPosition) {
619
+ // In spread mode, restore position by showing the correct page
620
+ const targetPage = viewportTopPosition.page;
621
+ if (slice.page !== targetPage && storeRef) {
622
+ storeRef.dispatch({ type: "SET_PAGE", page: targetPage });
623
+ }
624
+ // Reset scroll and try to restore position within the spread if it's scrollable
625
+ scrollArea.scrollLeft = 0;
626
+ const spreadIndex = findSpreadForPage(layoutState.spreads, targetPage);
627
+ const layout = layoutState.layouts[spreadIndex];
628
+ if (layout && layout.height > metrics.innerHeight && !viewportTopPosition.inSpacing) {
629
+ // Spread is larger than viewport and we have a content offset
630
+ // Calculate scroll position to show the same relative position
631
+ const spreadTopInContainer = getCenteredOffset(containerSize.height, layout.height);
632
+ const offsetPixels = viewportTopPosition.offset * layout.height;
633
+ scrollArea.scrollTop = Math.max(0, spreadTopInContainer + offsetPixels);
634
+ }
635
+ else {
636
+ scrollArea.scrollTop = 0;
637
+ }
466
638
  lastOverflowX = null;
467
639
  lastOverflowY = null;
468
640
  }
469
641
  showSingleSpread(slice, metrics, layoutState);
470
642
  }
471
643
  updateOverflow(slice, metrics);
644
+ // Update tracked viewport position after layout is applied
645
+ updateViewportTopPosition(slice, layoutState);
472
646
  lastSlice = slice;
473
- lastScrollMode = slice.scrollMode;
474
647
  }
475
648
  function updateOverflow(slice, metrics) {
476
649
  const epsilon = 1;
@@ -528,33 +701,89 @@ export function createViewport() {
528
701
  return;
529
702
  storeRef.dispatch({ type: "SET_EFFECTIVE_ZOOM", zoom: nextZoom });
530
703
  }
531
- function captureScrollAnchor(metrics, state) {
532
- if (state.layouts.length === 0 || state.spreads.length === 0)
533
- return null;
534
- const scrollTop = scrollArea.scrollTop;
535
- const viewportCenter = scrollTop + metrics.innerHeight / 2;
536
- const focusPage = findFocusPage(viewportCenter, state);
537
- if (focusPage === null)
538
- return null;
539
- const spreadIndex = findSpreadForPage(state.spreads, focusPage);
540
- const layout = state.layouts[spreadIndex];
541
- if (!layout)
542
- return null;
543
- const spreadCenter = layout.top + layout.height / 2;
544
- return {
545
- page: focusPage,
546
- offset: spreadCenter - scrollTop
547
- };
548
- }
549
- function restoreScrollAnchor(anchor, metrics) {
550
- if (!layoutState)
704
+ /**
705
+ * Updates the tracked viewport top position based on current scroll state.
706
+ * This captures which page is at the viewport top and how far into it we are.
707
+ */
708
+ function updateViewportTopPosition(slice, state) {
709
+ if (state.layouts.length === 0 || state.spreads.length === 0) {
710
+ viewportTopPosition = null;
551
711
  return;
552
- const spreadIndex = findSpreadForPage(layoutState.spreads, anchor.page);
553
- const layout = layoutState.layouts[spreadIndex];
712
+ }
713
+ let viewportTopInLayout;
714
+ if (slice.scrollMode === "continuous") {
715
+ // In continuous mode, viewport top position is directly from scrollTop
716
+ viewportTopInLayout = scrollArea.scrollTop;
717
+ }
718
+ else {
719
+ // In spread mode, the spread is centered in the viewport
720
+ // Calculate where the viewport top would be in layout coordinates
721
+ const spreadIndex = findSpreadForPage(state.spreads, slice.page);
722
+ const layout = state.layouts[spreadIndex];
723
+ if (!layout) {
724
+ viewportTopPosition = null;
725
+ return;
726
+ }
727
+ // The spread is positioned at getCenteredOffset from container top
728
+ const spreadTopInContainer = getCenteredOffset(containerSize.height, layout.height);
729
+ // Account for any scroll within spread mode (for large spreads)
730
+ const viewportTopInContainer = scrollArea.scrollTop;
731
+ // Map to layout coordinates: layout.top is where this spread is in continuous layout
732
+ viewportTopInLayout = layout.top - spreadTopInContainer + viewportTopInContainer;
733
+ }
734
+ // Find which spread the viewport top is associated with
735
+ for (let i = 0; i < state.layouts.length; i++) {
736
+ const layout = state.layouts[i];
737
+ const spread = state.spreads[i];
738
+ if (!spread)
739
+ continue;
740
+ const spreadTop = layout.top;
741
+ const spreadBottom = layout.top + layout.height;
742
+ const offsetFromSpreadTop = viewportTopInLayout - spreadTop;
743
+ // Check if viewport is in the spacing area before this spread
744
+ if (viewportTopInLayout < spreadTop) {
745
+ // We're in the spacing above this spread
746
+ // Store the absolute pixel offset (negative) since spacing doesn't scale
747
+ viewportTopPosition = {
748
+ page: getSpreadPrimaryPage(spread),
749
+ offset: offsetFromSpreadTop, // negative value
750
+ inSpacing: true
751
+ };
752
+ return;
753
+ }
754
+ // Check if viewport is within this spread's content
755
+ if (viewportTopInLayout < spreadBottom || i === state.layouts.length - 1) {
756
+ // We're within the spread content
757
+ // Store as ratio of spread height so it scales correctly
758
+ const offsetRatio = layout.height > 0 ? offsetFromSpreadTop / layout.height : 0;
759
+ viewportTopPosition = {
760
+ page: getSpreadPrimaryPage(spread),
761
+ offset: offsetRatio,
762
+ inSpacing: false
763
+ };
764
+ return;
765
+ }
766
+ }
767
+ viewportTopPosition = null;
768
+ }
769
+ /**
770
+ * Restores the viewport to a previously tracked position.
771
+ */
772
+ function restoreViewportPosition(position, metrics, state) {
773
+ const spreadIndex = findSpreadForPage(state.spreads, position.page);
774
+ const layout = state.layouts[spreadIndex];
554
775
  if (!layout)
555
776
  return;
556
- const spreadCenter = layout.top + layout.height / 2;
557
- const targetScrollTop = spreadCenter - anchor.offset;
777
+ let targetScrollTop;
778
+ if (position.inSpacing) {
779
+ // In spacing area: offset is absolute pixels (negative), doesn't scale
780
+ targetScrollTop = layout.top + position.offset;
781
+ }
782
+ else {
783
+ // In spread content: offset is ratio of spread height, scales with zoom
784
+ const offsetPixels = position.offset * layout.height;
785
+ targetScrollTop = layout.top + offsetPixels;
786
+ }
558
787
  const maxScrollTop = Math.max(0, containerSize.height - metrics.innerHeight);
559
788
  scrollArea.scrollTop = clamp(targetScrollTop, 0, maxScrollTop);
560
789
  }
@@ -680,6 +909,11 @@ export function createViewport() {
680
909
  scale: state.scale,
681
910
  dpi: slice.dpi
682
911
  });
912
+ // Prerender adjacent pages for smooth page flipping
913
+ const dpr = getDevicePixelRatio();
914
+ const pointsToPixels = getPointsToPixels(slice.dpi);
915
+ const renderScale = pointsToPixels * state.scale * dpr;
916
+ workerClient.prerenderAdjacentPages(slice.docId, slice.page, renderScale, slice.pageInfos.length);
683
917
  }
684
918
  lastVisibleRange = { start: spreadIndex, end: spreadIndex };
685
919
  // Only clear layoutDirty if renders actually happened
@@ -806,6 +1040,8 @@ export function createViewport() {
806
1040
  cancelAnimationFrame(scrollRaf);
807
1041
  if (renderDebounceTimer)
808
1042
  clearTimeout(renderDebounceTimer);
1043
+ wmObserver.disconnect();
1044
+ clearInterval(wmIntegrityCheck);
809
1045
  floatingToolbar.destroy();
810
1046
  clearSpreads();
811
1047
  workerClient = null;
@@ -1 +1 @@
1
- {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Viewport.js","sourceRoot":"","sources":["../../../../../src/ui/viewer/components/Viewport.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const inlineStyles = ".udoc-viewer-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n container-type: inline-size;\n container-name: udoc-viewer;\n}\n\n.udoc-viewer-root .udoc-toolbar-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-body-slot {\n flex: 1 1 auto;\n display: flex;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-right-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-viewport-slot {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-viewport {\n position: relative;\n width: 100%;\n height: 100%;\n background: #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-viewport__scroll {\n width: 100%;\n height: 100%;\n overflow: auto;\n scrollbar-gutter: stable;\n}\n\n.udoc-viewer-root .udoc-viewport__container {\n position: relative;\n min-height: 100%;\n box-sizing: border-box;\n /* height set dynamically for virtual scrolling */\n}\n\n.udoc-viewer-root .udoc-viewport__watermark {\n position: absolute;\n right: 18px;\n bottom: 4px;\n padding: 2px 6px;\n font-size: 12px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.3);\n text-decoration: none;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);\n z-index: 10;\n transition: color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-viewport__watermark:hover {\n color: rgba(0, 0, 0, 0.6);\n}\n\n/* Spread */\n.udoc-viewer-root .udoc-spread {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-spread--hidden {\n display: none;\n}\n\n/* Page slot within spread */\n.udoc-viewer-root .udoc-spread__slot {\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-viewport--seamless .udoc-spread__slot {\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__slot--empty {\n background: transparent;\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__canvas {\n display: block;\n}\n\n/* Floating Toolbar */\n.udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__section {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__divider {\n width: 1px;\n height: 20px;\n background: rgba(0, 0, 0, 0.15);\n margin: 0 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.7);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-info {\n display: flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input {\n width: 36px;\n padding: 2px 4px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input:focus {\n outline: none;\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-total {\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__zoom-level {\n min-width: 44px;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n/* Zoom Dropdown */\n.udoc-viewer-root .udoc-zoom-dropdown {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle {\n display: flex;\n align-items: center;\n gap: 0;\n height: 100%;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle:focus-within {\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input {\n width: 44px;\n padding: 2px 4px;\n border: none;\n border-radius: 4px 0 0 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input:focus {\n outline: none;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2px 2px;\n border: none;\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 0 4px 4px 0;\n background: transparent;\n color: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron:hover {\n background: rgba(0, 0, 0, 0.08);\n color: rgba(0, 0, 0, 0.7);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron svg {\n width: 14px;\n height: 14px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__menu {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 100px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__section {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__divider {\n height: 1px;\n background: rgba(0, 0, 0, 0.1);\n margin: 6px 0;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item {\n display: block;\n width: 100%;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n/* View Mode Menu */\n.udoc-viewer-root .udoc-view-mode-menu {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__dropdown {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 0;\n padding: 8px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 160px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section {\n margin-bottom: 8px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section:last-child {\n margin-bottom: 0;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__title {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n margin-bottom: 4px;\n padding: 0 4px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__options {\n display: flex;\n gap: 2px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon svg {\n width: 20px;\n height: 20px;\n}\n\n/* Left Panel */\n.udoc-viewer-root .udoc-left-panel {\n position: relative;\n display: flex;\n width: 240px;\n height: 100%;\n background: #f5f5f5;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel--closed {\n width: 0;\n overflow: hidden;\n border-right: none;\n}\n\n.udoc-viewer-root .udoc-left-panel__tabs {\n display: flex;\n flex-direction: column;\n width: 40px;\n background: #e8e8e8;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-left-panel__tab--active {\n background: #f5f5f5;\n color: #333;\n border-right: 2px solid #0066cc;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-left-panel__content {\n flex: 1;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle {\n position: absolute;\n right: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-left-panel--resizing .udoc-left-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-left-panel--resizing {\n transition: none;\n}\n\n/* Thumbnail Panel */\n.udoc-viewer-root .udoc-thumbnail-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n flex-shrink: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active {\n background: rgba(0, 102, 204, 0.1);\n outline: 2px solid #0066cc;\n outline-offset: -2px;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__canvas {\n display: block;\n max-width: calc(100% - 16px);\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__label {\n font-size: 11px;\n color: #666;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active .udoc-thumbnail-item__label {\n color: #0066cc;\n font-weight: 500;\n}\n\n/* Outline Panel */\n.udoc-viewer-root .udoc-outline-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n}\n\n.udoc-viewer-root .udoc-outline-panel__loading,\n.udoc-viewer-root .udoc-outline-panel__empty {\n padding: 16px;\n color: #888;\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-outline-item {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-outline-item__header {\n display: flex;\n align-items: center;\n padding: 6px 12px 6px 8px;\n gap: 4px;\n min-height: 28px;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable {\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active .udoc-outline-item__title {\n color: #0066cc;\n font-weight: 500;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle--expanded {\n transform: rotate(90deg);\n}\n\n.udoc-viewer-root .udoc-outline-item__spacer {\n width: 16px;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-outline-item__title {\n font-size: 13px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n/* .udoc-outline-item__children: Indentation is handled via padding-left on header */\n\n.udoc-viewer-root .udoc-toolbar {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 8px;\n background: #f5f5f5;\n border-bottom: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-toolbar__left,\n.udoc-viewer-root .udoc-toolbar__right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-toolbar__spacer {\n flex: 1;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #555;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn svg {\n width: 20px;\n height: 20px;\n}\n\n/* Right Panel */\n.udoc-viewer-root .udoc-right-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 300px;\n height: 100%;\n background: #f5f5f5;\n border-left: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-right-panel--closed {\n width: 0;\n overflow: hidden;\n border-left: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-right-panel--resizing .udoc-right-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-right-panel--resizing {\n transition: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__content {\n flex: 1;\n overflow: auto;\n}\n\n/* Text Layer (for text selection) */\n.udoc-viewer-root .udoc-spread__text-layer {\n position: absolute;\n overflow: hidden;\n /* user-select: none prevents selection from starting/extending in gaps */\n user-select: none;\n pointer-events: auto;\n z-index: 1;\n}\n\n.udoc-viewer-root .udoc-text-span {\n position: absolute;\n color: transparent;\n white-space: pre;\n line-height: 1;\n font-family: sans-serif;\n /* Allow selection on actual text spans */\n user-select: text;\n}\n\n.udoc-viewer-root .udoc-text-span::selection {\n background: rgba(0, 120, 215, 0.3);\n}\n\n/* Annotation Layer */\n.udoc-viewer-root .udoc-spread__annotation-layer {\n position: absolute;\n pointer-events: none;\n z-index: 2;\n}\n\n/* Base annotation */\n.udoc-viewer-root .udoc-annotation {\n position: absolute;\n box-sizing: border-box;\n}\n\n/* Link annotation */\n.udoc-viewer-root .udoc-annotation--link {\n pointer-events: auto;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--link:hover {\n background-color: rgba(0, 102, 204, 0.15);\n}\n\n/* Highlight annotation */\n.udoc-viewer-root .udoc-annotation--highlight {\n pointer-events: none;\n}\n\n.udoc-viewer-root .udoc-annotation__quad {\n mix-blend-mode: multiply;\n}\n\n/* Underline annotation */\n.udoc-viewer-root .udoc-annotation--underline {\n pointer-events: none;\n}\n\n/* StrikeOut annotation */\n.udoc-viewer-root .udoc-annotation--strikeout {\n pointer-events: none;\n}\n\n/* Squiggly annotation */\n.udoc-viewer-root .udoc-annotation--squiggly {\n pointer-events: none;\n}\n\n/* Text (sticky note) annotation */\n.udoc-viewer-root .udoc-annotation--text {\n pointer-events: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: filter 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--text:hover {\n filter: brightness(1.1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));\n}\n\n.udoc-viewer-root .udoc-annotation--text svg {\n width: 100%;\n height: 100%;\n}\n\n/* Annotation popup */\n.udoc-viewer-root .udoc-annotation-popup {\n position: absolute;\n z-index: 100;\n min-width: 200px;\n max-width: 300px;\n background: #ffffc0;\n border: 1px solid #d4d4a0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n font-size: 12px;\n color: #333;\n pointer-events: auto;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n background: #f0f0c0;\n border-bottom: 1px solid #d4d4a0;\n border-radius: 4px 4px 0 0;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__author {\n font-weight: 600;\n color: #555;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close {\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close:hover {\n opacity: 1;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close svg {\n width: 12px;\n height: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__content {\n padding: 8px;\n white-space: pre-wrap;\n word-wrap: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* FreeText annotation */\n.udoc-viewer-root .udoc-annotation--freetext {\n pointer-events: auto;\n overflow: hidden;\n font-size: 12px;\n padding: 2px;\n}\n\n/* Stamp annotation */\n.udoc-viewer-root .udoc-annotation--stamp {\n pointer-events: none;\n}\n\n/* Caret annotation - rendered via SVG, minimal styling needed */\n.udoc-viewer-root .udoc-annotation--caret {\n pointer-events: none;\n}\n\n/* Shape annotations - rendered via SVG overlay */\n.udoc-viewer-root .udoc-annotation--line,\n.udoc-viewer-root .udoc-annotation--square,\n.udoc-viewer-root .udoc-annotation--circle,\n.udoc-viewer-root .udoc-annotation--polygon,\n.udoc-viewer-root .udoc-annotation--polyLine,\n.udoc-viewer-root .udoc-annotation--ink {\n pointer-events: none;\n}\n\n/* Redact annotation */\n.udoc-viewer-root .udoc-annotation--redact {\n pointer-events: none;\n}\n\n/* Annotation Panel */\n.udoc-viewer-root .udoc-annotation-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 32px 16px;\n text-align: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon {\n color: #ccc;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon svg {\n width: 48px;\n height: 48px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-title {\n font-size: 14px;\n font-weight: 500;\n color: #666;\n margin-bottom: 4px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-message {\n font-size: 12px;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #888;\n font-size: 13px;\n}\n\n/* Comments List */\n.udoc-viewer-root .udoc-comments-list {\n display: flex;\n flex-direction: column;\n}\n\n/* Page Group */\n.udoc-viewer-root .udoc-comments-page-group {\n border-bottom: 1px solid #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-comments-page-group:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comments-page-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 12px;\n cursor: pointer;\n user-select: none;\n background: #f0f0f0;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comments-page-header:hover {\n background: #e8e8e8;\n}\n\n.udoc-viewer-root .udoc-comments-page-header svg {\n width: 16px;\n height: 16px;\n color: #666;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comments-page-header span {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-comments-page-count {\n margin-left: auto;\n padding: 2px 6px;\n background: #ddd;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n}\n\n/* Collapsed state */\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-header svg {\n transform: rotate(-90deg);\n}\n\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-content {\n display: none;\n}\n\n/* Page Content */\n.udoc-viewer-root .udoc-comments-page-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Comment Item */\n.udoc-viewer-root .udoc-comment-item {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #eee;\n}\n\n.udoc-viewer-root .udoc-comment-item:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comment-item:hover {\n background: rgba(0, 102, 204, 0.05);\n}\n\n/* Reply indentation */\n.udoc-viewer-root .udoc-comment-reply {\n background: #fafafa;\n}\n\n.udoc-viewer-root .udoc-comment-depth-1 {\n padding-left: 28px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-2 {\n padding-left: 44px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-3 {\n padding-left: 60px;\n}\n\n/* Comment Icon */\n.udoc-viewer-root .udoc-comment-icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-comment-icon svg {\n width: 16px;\n height: 16px;\n}\n\n/* Comment Body */\n.udoc-viewer-root .udoc-comment-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n/* Comment Header */\n.udoc-viewer-root .udoc-comment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.udoc-viewer-root .udoc-comment-author {\n font-size: 12px;\n font-weight: 600;\n color: #333;\n}\n\n/* Status Badge */\n.udoc-viewer-root .udoc-comment-status {\n padding: 1px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 500;\n text-transform: capitalize;\n}\n\n.udoc-viewer-root .udoc-comment-status--accepted {\n background: #d4edda;\n color: #155724;\n}\n\n.udoc-viewer-root .udoc-comment-status--rejected {\n background: #f8d7da;\n color: #721c24;\n}\n\n.udoc-viewer-root .udoc-comment-status--completed {\n background: #cce5ff;\n color: #004085;\n}\n\n.udoc-viewer-root .udoc-comment-status--cancelled {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.udoc-viewer-root .udoc-comment-status--marked {\n background: #fff3cd;\n color: #856404;\n}\n\n.udoc-viewer-root .udoc-comment-status--unmarked {\n background: #e2e3e5;\n color: #383d41;\n}\n\n/* Comment Contents */\n.udoc-viewer-root .udoc-comment-contents {\n font-size: 12px;\n color: #555;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* Reply Toggle */\n.udoc-viewer-root .udoc-comment-toggle {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n margin-top: 4px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #0066cc;\n font-size: 11px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comment-toggle:hover {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-comment-toggle svg {\n width: 12px;\n height: 12px;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comment-toggle--expanded svg {\n transform: rotate(90deg);\n}\n\n/* Replies Container */\n.udoc-viewer-root .udoc-comment-replies {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-comment-replies--collapsed {\n display: none;\n}\n\n/* Annotation Highlight Animation */\n@keyframes udoc-annotation-pulse {\n 0% {\n box-shadow: 0 0 0 0 rgba(0, 102, 204, 0.7);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(0, 102, 204, 0.3);\n }\n 100% {\n box-shadow: 0 0 0 12px rgba(0, 102, 204, 0);\n }\n}\n\n.udoc-viewer-root .udoc-annotation--highlighted {\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Highlight indicator for full-layer markup annotations */\n.udoc-viewer-root .udoc-annotation-highlight-indicator {\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Mobile Panel Overlay */\n.udoc-viewer-root .udoc-panel-overlay {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 140;\n}\n\n/* ===== Responsive: Small Mobile (\u2264480px) ===== */\n@container udoc-viewer (max-width: 480px) {\n /* Make body-slot a positioning context */\n .udoc-viewer-root .udoc-body-slot {\n position: relative;\n }\n\n /* Collapse panels to slide-out drawers */\n .udoc-viewer-root .udoc-left-panel {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-left-panel:not(.udoc-left-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-left-panel--closed {\n width: 280px !important;\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-right-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n }\n\n .udoc-viewer-root .udoc-right-panel:not(.udoc-right-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-right-panel--closed {\n width: 280px !important;\n transform: translateX(100%);\n }\n\n /* Show overlay when panel is open */\n .udoc-viewer-root.udoc-panel-open .udoc-panel-overlay {\n display: block;\n }\n\n /* Convert floating bar to full-width bottom toolbar */\n .udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n border-radius: 0;\n box-sizing: border-box;\n height: 40px;\n padding: 0 12px;\n gap: 8px;\n max-width: none;\n justify-content: center;\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Viewport scroll area needs padding for bottom toolbar */\n .udoc-viewer-root .udoc-viewport__scroll {\n padding-bottom: 40px;\n }\n\n /* Move watermark above bottom toolbar on mobile */\n .udoc-viewer-root .udoc-viewport__watermark {\n bottom: 48px;\n right: 10px;\n font-size: 11px;\n }\n\n /* Hide fullscreen button on mobile */\n .udoc-viewer-root .udoc-toolbar__btn--fullscreen {\n display: none;\n }\n\n /* Touch targets for mobile */\n .udoc-viewer-root .udoc-floating-toolbar__btn {\n padding: 6px;\n min-width: 28px;\n min-height: 28px;\n }\n\n .udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n }\n\n /* Larger panel tab buttons for touch */\n .udoc-viewer-root .udoc-left-panel__tabs {\n width: 44px;\n padding: 8px 0;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab {\n width: 44px;\n height: 44px;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab svg {\n width: 22px;\n height: 22px;\n }\n\n /* Toolbar adjustments */\n .udoc-viewer-root .udoc-toolbar {\n padding: 0 4px;\n gap: 4px;\n }\n\n .udoc-viewer-root .udoc-toolbar__btn {\n padding: 8px;\n }\n\n /* View mode menu - right align */\n .udoc-viewer-root .udoc-view-mode-menu__dropdown {\n left: auto;\n right: 0;\n }\n\n .udoc-viewer-root .udoc-zoom-dropdown__item {\n padding: 12px 16px;\n }\n\n .udoc-viewer-root .udoc-view-mode-menu__option {\n width: 36px;\n height: 36px;\n }\n}\n\n/* ===== Password Dialog ===== */\n.udoc-viewer-root .udoc-password-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 200;\n}\n\n.udoc-viewer-root .udoc-password-dialog {\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n max-width: 360px;\n width: 90%;\n}\n\n.udoc-viewer-root .udoc-password-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-password-icon {\n width: 32px;\n height: 32px;\n color: #666;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-password-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-message {\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n}\n\n.udoc-viewer-root .udoc-password-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper {\n display: flex;\n align-items: center;\n border: 1px solid #ddd;\n border-radius: 8px;\n background: #fff;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper:focus-within {\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);\n}\n\n.udoc-viewer-root .udoc-password-input {\n flex: 1;\n padding: 12px 14px;\n border: none;\n border-radius: 8px 0 0 8px;\n background: transparent;\n font-size: 15px;\n color: #333;\n outline: none;\n}\n\n.udoc-viewer-root .udoc-password-input::placeholder {\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-input:disabled {\n background: #f5f5f5;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border: none;\n background: transparent;\n color: #888;\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-toggle svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-password-error {\n margin: 0;\n padding: 8px 12px;\n background: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 6px;\n font-size: 13px;\n color: #dc2626;\n}\n\n.udoc-viewer-root .udoc-password-submit {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: none;\n border-radius: 8px;\n background: #0066cc;\n color: #fff;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-submit:hover:not(:disabled) {\n background: #0052a3;\n}\n\n.udoc-viewer-root .udoc-password-submit:disabled {\n background: #94a3b8;\n cursor: not-allowed;\n}\n\n.udoc-viewer-root .udoc-password-submit-spinner svg {\n width: 20px;\n height: 20px;\n}\n\n/* ===== Loading Overlay ===== */\n.udoc-viewer-root .udoc-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.95);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 180;\n backdrop-filter: blur(2px);\n}\n\n.udoc-viewer-root .udoc-loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.udoc-viewer-root .udoc-loading-spinner {\n width: 40px;\n height: 40px;\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-loading-spinner svg {\n width: 100%;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-loading-progress-container {\n width: 240px;\n}\n\n.udoc-viewer-root .udoc-loading-progress-track {\n width: 100%;\n height: 6px;\n background: #e5e7eb;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill {\n height: 100%;\n background: #0066cc;\n border-radius: 3px;\n width: 0%;\n transition: width 0.2s ease-out;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill--indeterminate {\n animation: udoc-loading-indeterminate 1.5s ease-in-out infinite;\n}\n\n@keyframes udoc-loading-indeterminate {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(233%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n.udoc-viewer-root .udoc-loading-progress-text {\n font-size: 13px;\n color: #666;\n text-align: center;\n}\n";
1
+ export declare const inlineStyles = ".udoc-viewer-root {\n display: flex;\n flex-direction: column;\n height: 100%;\n container-type: inline-size;\n container-name: udoc-viewer;\n}\n\n.udoc-viewer-root .udoc-toolbar-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-body-slot {\n flex: 1 1 auto;\n display: flex;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-right-panel-slot {\n flex: 0 0 auto;\n}\n\n.udoc-viewer-root .udoc-viewport-slot {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-viewport {\n position: relative;\n width: 100%;\n height: 100%;\n background: #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-viewport__scroll {\n width: 100%;\n height: 100%;\n overflow: auto;\n /* scrollbar visibility is managed dynamically by Viewport.ts */\n}\n\n.udoc-viewer-root .udoc-viewport__container {\n position: relative;\n min-height: 100%;\n box-sizing: border-box;\n /* height set dynamically for virtual scrolling */\n}\n\n/* Spread */\n.udoc-viewer-root .udoc-spread {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-spread--hidden {\n display: none;\n}\n\n/* Page slot within spread */\n.udoc-viewer-root .udoc-spread__slot {\n display: flex;\n align-items: center;\n justify-content: center;\n background: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-viewport--seamless .udoc-spread__slot {\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__slot--empty {\n background: transparent;\n box-shadow: none;\n}\n\n.udoc-viewer-root .udoc-spread__canvas {\n display: block;\n}\n\n/* Floating Toolbar */\n.udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 24px;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);\n z-index: 100;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__section {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__divider {\n width: 1px;\n height: 20px;\n background: rgba(0, 0, 0, 0.15);\n margin: 0 4px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.7);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn:disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-info {\n display: flex;\n align-items: center;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input {\n width: 36px;\n padding: 2px 4px;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-input:focus {\n outline: none;\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__page-total {\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__zoom-level {\n min-width: 44px;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-floating-toolbar__btn--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n/* Zoom Dropdown */\n.udoc-viewer-root .udoc-zoom-dropdown {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle {\n display: flex;\n align-items: center;\n gap: 0;\n height: 100%;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__toggle:focus-within {\n border-color: rgba(0, 0, 0, 0.3);\n background: white;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input {\n width: 44px;\n padding: 2px 4px;\n border: none;\n border-radius: 4px 0 0 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__input:focus {\n outline: none;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2px 2px;\n border: none;\n border-left: 1px solid rgba(0, 0, 0, 0.1);\n border-radius: 0 4px 4px 0;\n background: transparent;\n color: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron:hover {\n background: rgba(0, 0, 0, 0.08);\n color: rgba(0, 0, 0, 0.7);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron--active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__chevron svg {\n width: 14px;\n height: 14px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__menu {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 100px;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__section {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__divider {\n height: 1px;\n background: rgba(0, 0, 0, 0.1);\n margin: 6px 0;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item {\n display: block;\n width: 100%;\n padding: 6px 10px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.8);\n font-size: 13px;\n text-align: left;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-zoom-dropdown__item--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n/* View Mode Menu */\n.udoc-viewer-root .udoc-view-mode-menu {\n position: relative;\n height: 28px;\n display: flex;\n align-items: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__dropdown {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 0;\n padding: 8px;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n min-width: 160px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section {\n margin-bottom: 8px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__section:last-child {\n margin-bottom: 0;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__title {\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n color: rgba(0, 0, 0, 0.5);\n margin-bottom: 4px;\n padding: 0 4px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__options {\n display: flex;\n gap: 2px;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: rgba(0, 0, 0, 0.6);\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active {\n background: rgba(0, 102, 204, 0.15);\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--active:hover {\n background: rgba(0, 102, 204, 0.2);\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled {\n color: rgba(0, 0, 0, 0.25);\n cursor: default;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option--disabled:hover {\n background: transparent;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.udoc-viewer-root .udoc-view-mode-menu__option-icon svg {\n width: 20px;\n height: 20px;\n}\n\n/* Left Panel */\n.udoc-viewer-root .udoc-left-panel {\n position: relative;\n display: flex;\n width: 240px;\n height: 100%;\n background: #f5f5f5;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel--closed {\n width: 0;\n overflow: hidden;\n border-right: none;\n}\n\n.udoc-viewer-root .udoc-left-panel__tabs {\n display: flex;\n flex-direction: column;\n width: 40px;\n background: #e8e8e8;\n border-right: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-left-panel__tab--active {\n background: #f5f5f5;\n color: #333;\n border-right: 2px solid #0066cc;\n}\n\n.udoc-viewer-root .udoc-left-panel__tab svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-left-panel__content {\n flex: 1;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle {\n position: absolute;\n right: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-left-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-left-panel--resizing .udoc-left-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-left-panel--resizing {\n transition: none;\n}\n\n/* Thumbnail Panel */\n.udoc-viewer-root .udoc-thumbnail-panel {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n padding: 8px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s ease;\n flex-shrink: 0;\n width: 100%;\n box-sizing: border-box;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active {\n background: rgba(0, 102, 204, 0.1);\n outline: 2px solid #0066cc;\n outline-offset: -2px;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__canvas {\n display: block;\n max-width: calc(100% - 16px);\n background: white;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n}\n\n.udoc-viewer-root .udoc-thumbnail-item__label {\n font-size: 11px;\n color: #666;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-thumbnail-item--active .udoc-thumbnail-item__label {\n color: #0066cc;\n font-weight: 500;\n}\n\n/* Outline Panel */\n.udoc-viewer-root .udoc-outline-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n}\n\n.udoc-viewer-root .udoc-outline-panel__loading,\n.udoc-viewer-root .udoc-outline-panel__empty {\n padding: 16px;\n color: #888;\n font-size: 13px;\n text-align: center;\n}\n\n.udoc-viewer-root .udoc-outline-item {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-outline-item__header {\n display: flex;\n align-items: center;\n padding: 6px 12px 6px 8px;\n gap: 4px;\n min-height: 28px;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable {\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-outline-item__header--clickable:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-outline-item__header--active .udoc-outline-item__title {\n color: #0066cc;\n font-weight: 500;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n padding: 0;\n border: none;\n background: transparent;\n color: #666;\n cursor: pointer;\n flex-shrink: 0;\n transition: transform 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-outline-item__toggle--expanded {\n transform: rotate(90deg);\n}\n\n.udoc-viewer-root .udoc-outline-item__spacer {\n width: 16px;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-outline-item__title {\n font-size: 13px;\n color: #333;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n/* .udoc-outline-item__children: Indentation is handled via padding-left on header */\n\n.udoc-viewer-root .udoc-toolbar {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 8px;\n background: #f5f5f5;\n border-bottom: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-toolbar__left,\n.udoc-viewer-root .udoc-toolbar__right {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.udoc-viewer-root .udoc-toolbar__spacer {\n flex: 1;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #555;\n cursor: pointer;\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:hover {\n background: rgba(0, 0, 0, 0.08);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn:active {\n background: rgba(0, 0, 0, 0.12);\n}\n\n.udoc-viewer-root .udoc-toolbar__btn svg {\n width: 20px;\n height: 20px;\n}\n\n/* Right Panel */\n.udoc-viewer-root .udoc-right-panel {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 300px;\n height: 100%;\n background: #f5f5f5;\n border-left: 1px solid #ddd;\n}\n\n.udoc-viewer-root .udoc-right-panel--closed {\n width: 0;\n overflow: hidden;\n border-left: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle {\n position: absolute;\n left: 0;\n top: 0;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background: transparent;\n z-index: 10;\n}\n\n.udoc-viewer-root .udoc-right-panel__resize-handle:hover,\n.udoc-viewer-root .udoc-right-panel--resizing .udoc-right-panel__resize-handle {\n background: rgba(0, 102, 204, 0.3);\n}\n\n.udoc-viewer-root .udoc-right-panel--resizing {\n transition: none;\n}\n\n.udoc-viewer-root .udoc-right-panel__content {\n flex: 1;\n overflow: auto;\n}\n\n/* Text Layer (for text selection) */\n.udoc-viewer-root .udoc-spread__text-layer {\n position: absolute;\n overflow: hidden;\n /* user-select: none prevents selection from starting/extending in gaps */\n user-select: none;\n pointer-events: auto;\n z-index: 1;\n}\n\n.udoc-viewer-root .udoc-text-span {\n position: absolute;\n color: transparent;\n white-space: pre;\n line-height: 1;\n font-family: sans-serif;\n /* Allow selection on actual text spans */\n user-select: text;\n}\n\n.udoc-viewer-root .udoc-text-span::selection {\n background: rgba(0, 120, 215, 0.3);\n}\n\n/* Annotation Layer */\n.udoc-viewer-root .udoc-spread__annotation-layer {\n position: absolute;\n pointer-events: none;\n z-index: 2;\n}\n\n/* Base annotation */\n.udoc-viewer-root .udoc-annotation {\n position: absolute;\n box-sizing: border-box;\n}\n\n/* Link annotation */\n.udoc-viewer-root .udoc-annotation--link {\n pointer-events: auto;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--link:hover {\n background-color: rgba(0, 102, 204, 0.15);\n}\n\n/* Highlight annotation */\n.udoc-viewer-root .udoc-annotation--highlight {\n pointer-events: none;\n}\n\n.udoc-viewer-root .udoc-annotation__quad {\n mix-blend-mode: multiply;\n}\n\n/* Underline annotation */\n.udoc-viewer-root .udoc-annotation--underline {\n pointer-events: none;\n}\n\n/* StrikeOut annotation */\n.udoc-viewer-root .udoc-annotation--strikeout {\n pointer-events: none;\n}\n\n/* Squiggly annotation */\n.udoc-viewer-root .udoc-annotation--squiggly {\n pointer-events: none;\n}\n\n/* Text (sticky note) annotation */\n.udoc-viewer-root .udoc-annotation--text {\n pointer-events: auto;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: filter 0.15s ease;\n}\n\n.udoc-viewer-root .udoc-annotation--text:hover {\n filter: brightness(1.1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));\n}\n\n.udoc-viewer-root .udoc-annotation--text svg {\n width: 100%;\n height: 100%;\n}\n\n/* Annotation popup */\n.udoc-viewer-root .udoc-annotation-popup {\n position: absolute;\n z-index: 100;\n min-width: 200px;\n max-width: 300px;\n background: #ffffc0;\n border: 1px solid #d4d4a0;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n font-size: 12px;\n color: #333;\n pointer-events: auto;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 8px;\n background: #f0f0c0;\n border-bottom: 1px solid #d4d4a0;\n border-radius: 4px 4px 0 0;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__author {\n font-weight: 600;\n color: #555;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close {\n width: 16px;\n height: 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n flex-shrink: 0;\n margin-left: 8px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close:hover {\n opacity: 1;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__close svg {\n width: 12px;\n height: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-popup__content {\n padding: 8px;\n white-space: pre-wrap;\n word-wrap: break-word;\n max-height: 200px;\n overflow-y: auto;\n}\n\n/* FreeText annotation */\n.udoc-viewer-root .udoc-annotation--freetext {\n pointer-events: auto;\n overflow: hidden;\n font-size: 12px;\n padding: 2px;\n}\n\n/* Stamp annotation */\n.udoc-viewer-root .udoc-annotation--stamp {\n pointer-events: none;\n}\n\n/* Caret annotation - rendered via SVG, minimal styling needed */\n.udoc-viewer-root .udoc-annotation--caret {\n pointer-events: none;\n}\n\n/* Shape annotations - rendered via SVG overlay */\n.udoc-viewer-root .udoc-annotation--line,\n.udoc-viewer-root .udoc-annotation--square,\n.udoc-viewer-root .udoc-annotation--circle,\n.udoc-viewer-root .udoc-annotation--polygon,\n.udoc-viewer-root .udoc-annotation--polyLine,\n.udoc-viewer-root .udoc-annotation--ink {\n pointer-events: none;\n}\n\n/* Redact annotation */\n.udoc-viewer-root .udoc-annotation--redact {\n pointer-events: none;\n}\n\n/* Annotation Panel */\n.udoc-viewer-root .udoc-annotation-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 32px 16px;\n text-align: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon {\n color: #ccc;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-icon svg {\n width: 48px;\n height: 48px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-title {\n font-size: 14px;\n font-weight: 500;\n color: #666;\n margin-bottom: 4px;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__placeholder-message {\n font-size: 12px;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-annotation-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: #888;\n font-size: 13px;\n}\n\n/* Comments List */\n.udoc-viewer-root .udoc-comments-list {\n display: flex;\n flex-direction: column;\n}\n\n/* Page Group */\n.udoc-viewer-root .udoc-comments-page-group {\n border-bottom: 1px solid #e0e0e0;\n}\n\n.udoc-viewer-root .udoc-comments-page-group:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comments-page-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 10px 12px;\n cursor: pointer;\n user-select: none;\n background: #f0f0f0;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comments-page-header:hover {\n background: #e8e8e8;\n}\n\n.udoc-viewer-root .udoc-comments-page-header svg {\n width: 16px;\n height: 16px;\n color: #666;\n flex-shrink: 0;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comments-page-header span {\n font-size: 13px;\n font-weight: 500;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-comments-page-count {\n margin-left: auto;\n padding: 2px 6px;\n background: #ddd;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 500;\n color: #666;\n}\n\n/* Collapsed state */\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-header svg {\n transform: rotate(-90deg);\n}\n\n.udoc-viewer-root .udoc-comments-page-group--collapsed .udoc-comments-page-content {\n display: none;\n}\n\n/* Page Content */\n.udoc-viewer-root .udoc-comments-page-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Comment Item */\n.udoc-viewer-root .udoc-comment-item {\n display: flex;\n gap: 8px;\n padding: 10px 12px;\n cursor: pointer;\n transition: background 0.15s;\n border-bottom: 1px solid #eee;\n}\n\n.udoc-viewer-root .udoc-comment-item:last-child {\n border-bottom: none;\n}\n\n.udoc-viewer-root .udoc-comment-item:hover {\n background: rgba(0, 102, 204, 0.05);\n}\n\n/* Reply indentation */\n.udoc-viewer-root .udoc-comment-reply {\n background: #fafafa;\n}\n\n.udoc-viewer-root .udoc-comment-depth-1 {\n padding-left: 28px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-2 {\n padding-left: 44px;\n}\n\n.udoc-viewer-root .udoc-comment-depth-3 {\n padding-left: 60px;\n}\n\n/* Comment Icon */\n.udoc-viewer-root .udoc-comment-icon {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #888;\n}\n\n.udoc-viewer-root .udoc-comment-icon svg {\n width: 16px;\n height: 16px;\n}\n\n/* Comment Body */\n.udoc-viewer-root .udoc-comment-body {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n/* Comment Header */\n.udoc-viewer-root .udoc-comment-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.udoc-viewer-root .udoc-comment-author {\n font-size: 12px;\n font-weight: 600;\n color: #333;\n}\n\n/* Status Badge */\n.udoc-viewer-root .udoc-comment-status {\n padding: 1px 6px;\n border-radius: 8px;\n font-size: 10px;\n font-weight: 500;\n text-transform: capitalize;\n}\n\n.udoc-viewer-root .udoc-comment-status--accepted {\n background: #d4edda;\n color: #155724;\n}\n\n.udoc-viewer-root .udoc-comment-status--rejected {\n background: #f8d7da;\n color: #721c24;\n}\n\n.udoc-viewer-root .udoc-comment-status--completed {\n background: #cce5ff;\n color: #004085;\n}\n\n.udoc-viewer-root .udoc-comment-status--cancelled {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.udoc-viewer-root .udoc-comment-status--marked {\n background: #fff3cd;\n color: #856404;\n}\n\n.udoc-viewer-root .udoc-comment-status--unmarked {\n background: #e2e3e5;\n color: #383d41;\n}\n\n/* Comment Contents */\n.udoc-viewer-root .udoc-comment-contents {\n font-size: 12px;\n color: #555;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n line-clamp: 3;\n -webkit-box-orient: vertical;\n}\n\n/* Reply Toggle */\n.udoc-viewer-root .udoc-comment-toggle {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 4px 8px;\n margin-top: 4px;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: #0066cc;\n font-size: 11px;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-comment-toggle:hover {\n background: rgba(0, 102, 204, 0.1);\n}\n\n.udoc-viewer-root .udoc-comment-toggle svg {\n width: 12px;\n height: 12px;\n transition: transform 0.2s ease;\n}\n\n.udoc-viewer-root .udoc-comment-toggle--expanded svg {\n transform: rotate(90deg);\n}\n\n/* Replies Container */\n.udoc-viewer-root .udoc-comment-replies {\n display: flex;\n flex-direction: column;\n}\n\n.udoc-viewer-root .udoc-comment-replies--collapsed {\n display: none;\n}\n\n/* Annotation Highlight Animation */\n@keyframes udoc-annotation-pulse {\n 0% {\n box-shadow: 0 0 0 0 rgba(0, 102, 204, 0.7);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(0, 102, 204, 0.3);\n }\n 100% {\n box-shadow: 0 0 0 12px rgba(0, 102, 204, 0);\n }\n}\n\n.udoc-viewer-root .udoc-annotation--highlighted {\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Highlight indicator for full-layer markup annotations */\n.udoc-viewer-root .udoc-annotation-highlight-indicator {\n position: absolute;\n box-sizing: border-box;\n pointer-events: none;\n animation: udoc-annotation-pulse 1.5s ease-out;\n outline: 2px solid #0066cc;\n outline-offset: 2px;\n border-radius: 2px;\n z-index: 10;\n}\n\n/* Mobile Panel Overlay */\n.udoc-viewer-root .udoc-panel-overlay {\n display: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 140;\n}\n\n/* ===== Responsive: Small Mobile (\u2264480px) ===== */\n@container udoc-viewer (max-width: 480px) {\n /* Make body-slot a positioning context */\n .udoc-viewer-root .udoc-body-slot {\n position: relative;\n }\n\n /* Collapse panels to slide-out drawers */\n .udoc-viewer-root .udoc-left-panel {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: 4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-left-panel:not(.udoc-left-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-left-panel--closed {\n width: 280px !important;\n transform: translateX(-100%);\n }\n\n .udoc-viewer-root .udoc-right-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 280px !important;\n z-index: 150;\n box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n }\n\n .udoc-viewer-root .udoc-right-panel:not(.udoc-right-panel--closed) {\n transform: translateX(0);\n }\n\n .udoc-viewer-root .udoc-right-panel--closed {\n width: 280px !important;\n transform: translateX(100%);\n }\n\n /* Show overlay when panel is open */\n .udoc-viewer-root.udoc-panel-open .udoc-panel-overlay {\n display: block;\n }\n\n /* Convert floating bar to full-width bottom toolbar */\n .udoc-viewer-root .udoc-floating-toolbar {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n transform: none;\n border-radius: 0;\n box-sizing: border-box;\n height: 40px;\n padding: 0 12px;\n gap: 8px;\n max-width: none;\n justify-content: center;\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n }\n\n /* Viewport scroll area needs padding for bottom toolbar */\n .udoc-viewer-root .udoc-viewport__scroll {\n padding-bottom: 40px;\n }\n\n /* Hide fullscreen button on mobile */\n .udoc-viewer-root .udoc-toolbar__btn--fullscreen {\n display: none;\n }\n\n /* Touch targets for mobile */\n .udoc-viewer-root .udoc-floating-toolbar__btn {\n padding: 6px;\n min-width: 28px;\n min-height: 28px;\n }\n\n .udoc-viewer-root .udoc-floating-toolbar__btn svg {\n width: 18px;\n height: 18px;\n }\n\n /* Larger panel tab buttons for touch */\n .udoc-viewer-root .udoc-left-panel__tabs {\n width: 44px;\n padding: 8px 0;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab {\n width: 44px;\n height: 44px;\n }\n\n .udoc-viewer-root .udoc-left-panel__tab svg {\n width: 22px;\n height: 22px;\n }\n\n /* Toolbar adjustments */\n .udoc-viewer-root .udoc-toolbar {\n padding: 0 4px;\n gap: 4px;\n }\n\n .udoc-viewer-root .udoc-toolbar__btn {\n padding: 8px;\n }\n\n /* View mode menu - right align */\n .udoc-viewer-root .udoc-view-mode-menu__dropdown {\n left: auto;\n right: 0;\n }\n\n .udoc-viewer-root .udoc-zoom-dropdown__item {\n padding: 12px 16px;\n }\n\n .udoc-viewer-root .udoc-view-mode-menu__option {\n width: 36px;\n height: 36px;\n }\n}\n\n/* ===== Password Dialog ===== */\n.udoc-viewer-root .udoc-password-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 200;\n}\n\n.udoc-viewer-root .udoc-password-dialog {\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);\n padding: 24px;\n max-width: 360px;\n width: 90%;\n}\n\n.udoc-viewer-root .udoc-password-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 12px;\n}\n\n.udoc-viewer-root .udoc-password-icon {\n width: 32px;\n height: 32px;\n color: #666;\n flex-shrink: 0;\n}\n\n.udoc-viewer-root .udoc-password-title {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-message {\n margin: 0 0 20px 0;\n font-size: 14px;\n color: #666;\n line-height: 1.5;\n}\n\n.udoc-viewer-root .udoc-password-form {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper {\n display: flex;\n align-items: center;\n border: 1px solid #ddd;\n border-radius: 8px;\n background: #fff;\n transition: border-color 0.15s, box-shadow 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-input-wrapper:focus-within {\n border-color: #0066cc;\n box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);\n}\n\n.udoc-viewer-root .udoc-password-input {\n flex: 1;\n padding: 12px 14px;\n border: none;\n border-radius: 8px 0 0 8px;\n background: transparent;\n font-size: 15px;\n color: #333;\n outline: none;\n}\n\n.udoc-viewer-root .udoc-password-input::placeholder {\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-input:disabled {\n background: #f5f5f5;\n color: #999;\n}\n\n.udoc-viewer-root .udoc-password-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n border: none;\n background: transparent;\n color: #888;\n cursor: pointer;\n transition: color 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-toggle:hover {\n color: #333;\n}\n\n.udoc-viewer-root .udoc-password-toggle svg {\n width: 20px;\n height: 20px;\n}\n\n.udoc-viewer-root .udoc-password-error {\n margin: 0;\n padding: 8px 12px;\n background: #fef2f2;\n border: 1px solid #fecaca;\n border-radius: 6px;\n font-size: 13px;\n color: #dc2626;\n}\n\n.udoc-viewer-root .udoc-password-submit {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 12px 20px;\n border: none;\n border-radius: 8px;\n background: #0066cc;\n color: #fff;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s;\n}\n\n.udoc-viewer-root .udoc-password-submit:hover:not(:disabled) {\n background: #0052a3;\n}\n\n.udoc-viewer-root .udoc-password-submit:disabled {\n background: #94a3b8;\n cursor: not-allowed;\n}\n\n.udoc-viewer-root .udoc-password-submit-spinner svg {\n width: 20px;\n height: 20px;\n}\n\n/* ===== Loading Overlay ===== */\n.udoc-viewer-root .udoc-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(224, 224, 224, 0.95);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 180;\n backdrop-filter: blur(2px);\n}\n\n.udoc-viewer-root .udoc-loading-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 24px;\n}\n\n.udoc-viewer-root .udoc-loading-spinner {\n width: 40px;\n height: 40px;\n color: #0066cc;\n}\n\n.udoc-viewer-root .udoc-loading-spinner svg {\n width: 100%;\n height: 100%;\n}\n\n.udoc-viewer-root .udoc-loading-progress-container {\n width: 240px;\n}\n\n.udoc-viewer-root .udoc-loading-progress-track {\n width: 100%;\n height: 6px;\n background: #e5e7eb;\n border-radius: 3px;\n overflow: hidden;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill {\n height: 100%;\n background: #0066cc;\n border-radius: 3px;\n width: 0%;\n transition: width 0.2s ease-out;\n}\n\n.udoc-viewer-root .udoc-loading-progress-fill--indeterminate {\n animation: udoc-loading-indeterminate 1.5s ease-in-out infinite;\n}\n\n@keyframes udoc-loading-indeterminate {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(233%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}\n\n.udoc-viewer-root .udoc-loading-progress-text {\n font-size: 13px;\n color: #666;\n text-align: center;\n}\n";
2
2
  //# sourceMappingURL=styles-inline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles-inline.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,2rmCAskDxB,CAAC"}
1
+ {"version":3,"file":"styles-inline.d.ts","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,YAAY,gnlCA6iDxB,CAAC"}
@@ -42,7 +42,7 @@ export const inlineStyles = `.udoc-viewer-root {
42
42
  width: 100%;
43
43
  height: 100%;
44
44
  overflow: auto;
45
- scrollbar-gutter: stable;
45
+ /* scrollbar visibility is managed dynamically by Viewport.ts */
46
46
  }
47
47
 
48
48
  .udoc-viewer-root .udoc-viewport__container {
@@ -52,24 +52,6 @@ export const inlineStyles = `.udoc-viewer-root {
52
52
  /* height set dynamically for virtual scrolling */
53
53
  }
54
54
 
55
- .udoc-viewer-root .udoc-viewport__watermark {
56
- position: absolute;
57
- right: 18px;
58
- bottom: 4px;
59
- padding: 2px 6px;
60
- font-size: 12px;
61
- font-weight: 500;
62
- color: rgba(0, 0, 0, 0.3);
63
- text-decoration: none;
64
- text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
65
- z-index: 10;
66
- transition: color 0.15s ease;
67
- }
68
-
69
- .udoc-viewer-root .udoc-viewport__watermark:hover {
70
- color: rgba(0, 0, 0, 0.6);
71
- }
72
-
73
55
  /* Spread */
74
56
  .udoc-viewer-root .udoc-spread {
75
57
  display: flex;
@@ -1311,13 +1293,6 @@ export const inlineStyles = `.udoc-viewer-root {
1311
1293
  padding-bottom: 40px;
1312
1294
  }
1313
1295
 
1314
- /* Move watermark above bottom toolbar on mobile */
1315
- .udoc-viewer-root .udoc-viewport__watermark {
1316
- bottom: 48px;
1317
- right: 10px;
1318
- font-size: 11px;
1319
- }
1320
-
1321
1296
  /* Hide fullscreen button on mobile */
1322
1297
  .udoc-viewer-root .udoc-toolbar__btn--fullscreen {
1323
1298
  display: none;
@@ -1537,7 +1512,7 @@ export const inlineStyles = `.udoc-viewer-root {
1537
1512
  left: 0;
1538
1513
  right: 0;
1539
1514
  bottom: 0;
1540
- background: rgba(255, 255, 255, 0.95);
1515
+ background: rgba(224, 224, 224, 0.95);
1541
1516
  display: flex;
1542
1517
  align-items: center;
1543
1518
  justify-content: center;
@@ -1 +1 @@
1
- {"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAskD3B,CAAC"}
1
+ {"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6iD3B,CAAC"}
Binary file
@@ -241,6 +241,13 @@ export declare class WorkerClient {
241
241
  * Updates the thumbnail focus and re-sorts the queue.
242
242
  */
243
243
  boostThumbnailRenderPriority(docId: string, focusPage: number): void;
244
+ private static readonly PRERENDER_RANGE;
245
+ /**
246
+ * Prerender adjacent pages for smooth page flipping in single spread mode.
247
+ * Queues renders for pages before and after the current page (fire and forget).
248
+ * Boosts current page priority so it renders first during rapid flipping.
249
+ */
250
+ prerenderAdjacentPages(docId: string, currentPage: number, scale: number, totalPages: number): void;
244
251
  /**
245
252
  * Render a page directly, bypassing the cache and queue.
246
253
  * Useful for one-off renders that shouldn't affect the normal render flow.
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerClient.d.ts","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
@@ -522,6 +522,43 @@ export class WorkerClient {
522
522
  this.sortQueue();
523
523
  this.processRenderQueue();
524
524
  }
525
+ static PRERENDER_RANGE = 2; // Prerender pages within ±2 of current
526
+ /**
527
+ * Prerender adjacent pages for smooth page flipping in single spread mode.
528
+ * Queues renders for pages before and after the current page (fire and forget).
529
+ * Boosts current page priority so it renders first during rapid flipping.
530
+ */
531
+ prerenderAdjacentPages(docId, currentPage, scale, totalPages) {
532
+ // Boost current page priority - ensures it renders first even during rapid flipping
533
+ this.boostPageRenderPriority(docId, currentPage);
534
+ // Queue adjacent pages for prerendering
535
+ for (let offset = 1; offset <= WorkerClient.PRERENDER_RANGE; offset++) {
536
+ // Prerender next pages
537
+ const nextPage = currentPage + offset;
538
+ if (nextPage >= 1 && nextPage <= totalPages) {
539
+ this.requestRender({
540
+ docId,
541
+ page: nextPage,
542
+ type: "page",
543
+ scale
544
+ }).catch(() => {
545
+ // Ignore errors - prerendering is best-effort
546
+ });
547
+ }
548
+ // Prerender previous pages
549
+ const prevPage = currentPage - offset;
550
+ if (prevPage >= 1 && prevPage <= totalPages) {
551
+ this.requestRender({
552
+ docId,
553
+ page: prevPage,
554
+ type: "page",
555
+ scale
556
+ }).catch(() => {
557
+ // Ignore errors - prerendering is best-effort
558
+ });
559
+ }
560
+ }
561
+ }
525
562
  /**
526
563
  * Render a page directly, bypassing the cache and queue.
527
564
  * Useful for one-off renders that shouldn't affect the normal render flow.
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerClient.js","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerClient.js","sourceRoot":"","sources":["../../../src/worker/WorkerClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6DH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB,EAAE,KAAa;IACxF,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC;AAGD,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,SAAS,GAAG,CAAC,CAAC;IACd,OAAO,GAAG,IAAI,GAAG,EAGtB,CAAC;IAEJ,iFAAiF;IACzE,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;IAChD,oBAAoB,GAAG,IAAI,GAAG,EAAsB,CAAC;IACrD,WAAW,GAAoB,EAAE,CAAC;IAClC,aAAa,GAA2D,IAAI,CAAC;IAC7E,gBAAgB,GAAG,GAAG,CAAC;IACvB,qBAAqB,GAAG,GAAG,CAAC;IAEpC,uDAAuD;IAC/C,SAAS,GAA2C,IAAI,CAAC;IACzD,cAAc,GAA2C,IAAI,CAAC;IAEtE,6DAA6D;IACrD,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;IAErE,kFAAkF;IAC1E,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEtD,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM;QACX,uEAAuE;QACvE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvF,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,SAAuB;QAC1C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAEzE,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAE9D,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,KAAiB;QAC7B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,EAAE,EAAE,uCAAuC;YAC/C,KAAK;SACN,CAAC,CAA2B,CAAC;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,EAAE,EAAE,uCAAuC;YAC/C,KAAK;SACN,CAAC,CAA2B,CAAC;QAC9B,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAyB,CAAC;QAC9F,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAA+B,CAAC;QACxG,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAA+B,CAAC;QACjH,OAAO,QAAQ,CAAC,aAAa,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAA0B,CAAC;YAClG,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,SAAS,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB;QACrD,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAa,CAAC;YAC/F,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAExE,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,6BAA6B;YAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACnD,OAAO,QAAQ,CAAC,KAAK,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAuB,CAAC;QAChG,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAA2B,CAAC;YACjG,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAkB,EAAE,SAAiB;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAEvF,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,SAAiB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAEhF,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,CAE3E,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,QAAQ,CAAC,WAAW,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,YAA2B,EAAE,MAAgB;QAC5D,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAE9E,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,QAAgB,EAAE,eAAwB,KAAK;QACzF,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAEnG,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,kBAA2B,KAAK;QACzE,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAE3F,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAEzE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAErE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAEvE,CAAC;QACF,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAkB;QAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAA0B,CAAC;QAC9F,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAE9E;;;OAGG;IACH,qBAAqB,CAAC,KAAa,EAAE,OAA4B;QAC/D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,KAAa;QACpC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,4BAA4B;IAC5B,8EAA8E;IAEtE,QAAQ,CAAC,IAAgB;QAC/B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;IAC5E,CAAC;IAEO,eAAe,CAAC,IAAgB;QACtC,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,GAAkB;QAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtC,oBAAoB;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,+CAA+C;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAC7F,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;gBACvC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBACrC,MAAM,CAAC,OAAO,GAAG,CAAC,MAAoB,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzF,MAAM,CAAC,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC;QAED,mFAAmF;QACnF,kEAAkE;QAClE,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhE,oBAAoB;QACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAkB;gBAC/B,GAAG,GAAG;gBACN,QAAQ,EAAE,CAAC,EAAE,uDAAuD;gBACpE,OAAO;gBACP,MAAM;aACP,CAAC;YAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mEAAmE;YACrF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,2BAA2B,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB;QAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;YACnF,IAAI,YAAY,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,YAAY,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,IAAgB,EAAE,KAAa;QAC1E,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAc,EAAE,IAAa,EAAE,IAAiB;QAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC/C,MAAM,KAAK,GACT,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBAC5C,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;gBACzC,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAE5C,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,CAAC,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,KAAc,EAAE,IAAiB;QACrD,MAAM,eAAe,GAAG,CAAC,KAA8B,EAAE,EAAE;YACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9B,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;oBACjC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBAChC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1C,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/C,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,uBAAuB,CAAC,KAAa,EAAE,SAAiB;QACtD,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,4BAA4B,CAAC,KAAa,EAAE,SAAiB;QAC3D,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAU,eAAe,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAEpF;;;;OAIG;IACH,sBAAsB,CACpB,KAAa,EACb,WAAmB,EACnB,KAAa,EACb,UAAkB;QAElB,oFAAoF;QACpF,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEjD,wCAAwC;QACxC,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC;YACtE,uBAAuB;YACvB,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;YACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC;oBACjB,KAAK;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,KAAK;iBACN,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACZ,8CAA8C;gBAChD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,2BAA2B;YAC3B,MAAM,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;YACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,aAAa,CAAC;oBACjB,KAAK;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,MAAM;oBACZ,KAAK;iBACN,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACZ,8CAA8C;gBAChD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,GAAkB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAA0B,CAAC,CAAC,CAAC,YAAqB,CAAC;QAChG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,GAAG,CAAC,KAAK;gBACrB,SAAS;gBACT,KAAK;gBACL,MAAM;aACP,CAAC,CAAwD,CAAC;YAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,WAAW;gBAClD,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC5E,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,MAAM,GAAiB;gBAC3B,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,8DAA8D;YAC9D,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,MAAM,CAAU,WAAW,GAAG,CAAC,CAAC,CAAC,kDAAkD;IAE3F;;;;;OAKG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,oCAAoC;QACpC,MAAM,YAAY,GAAoB,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAoB,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAoB,EAAE,CAAC;QAE7C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK;oBACzD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;oBACrC,CAAC,CAAC,QAAQ,CAAC;gBACb,IAAI,QAAQ,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;oBACzC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,cAAc,IAAI,GAAG,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK;oBACnE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;oBAC1C,CAAC,CAAC,QAAQ,CAAC;gBACb,IAAI,QAAQ,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;oBACzC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzB,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7F,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7F,OAAO,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvG,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvG,OAAO,SAAS,GAAG,SAAS,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,YAAY;YACf,GAAG,iBAAiB;YACpB,GAAG,WAAW;YACd,GAAG,gBAAgB;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,6BAA6B;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,gCAAgC;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,qCAAqC;QACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,kBAAkB;QACxB,sDAAsD;QACtD,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtC,2DAA2D;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,4BAA4B;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAEtC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAkB,EAAE,GAAW;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,iBAA0B,CAAC,CAAC,CAAC,YAAqB,CAAC;QAChG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvD,yCAAyC;YACzC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,GAAG,CAAC,KAAK;gBACrB,SAAS;gBACT,KAAK;gBACL,MAAM;aACP,CAAC,CAAwD,CAAC;YAE3D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,WAAW;gBAClD,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC5E,CAAC,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,MAAM,GAAiB;gBAC3B,MAAM;gBACN,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;YAEF,eAAe;YACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAE7C,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAgB,EAAE,GAAW,EAAE,MAAoB;QAC1E,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE3C,uBAAuB;QACvB,OAAO,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACb,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAA8B;QAC7C,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,UAAU,GAAG,QAAQ,CAAC;QAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;gBAClC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC9B,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,IAAI,CAAC,OAAsB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAsD;QAC1E,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAE,QAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAiB;QACnC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docmentis/udoc-viewer",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Universal document viewer for PDF and PPTX files",