@pixldocs/canvas-renderer 0.5.363 → 0.5.365

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.
@@ -12960,7 +12960,6 @@ const PageCanvas = forwardRef(
12960
12960
  const shouldRestoreGroupSelection = !!((preservedGroupSelection == null ? void 0 : preservedGroupSelection.groupSelectionId) && (!preservedGroupSelection.expiresAt || preservedGroupSelection.expiresAt > Date.now()));
12961
12961
  if (skipSelectionClearOnDiscardRef.current) {
12962
12962
  skipSelectionClearOnDiscardRef.current = false;
12963
- if (shouldRestoreGroupSelection) restorePreservedGroupSelectionSoon(preservedGroupSelection);
12964
12963
  return;
12965
12964
  }
12966
12965
  const recentGroupSelectionRestore = recentGroupSelectionRestoreRef.current;
@@ -15555,7 +15554,6 @@ const PageCanvas = forwardRef(
15555
15554
  expiresAt: Date.now() + 1200
15556
15555
  };
15557
15556
  recentGroupSelectionRestoreRef.current = resizeRestoreSnapshot;
15558
- restorePreservedGroupSelectionSoon(resizeRestoreSnapshot);
15559
15557
  }
15560
15558
  fabricCanvas.requestRenderAll();
15561
15559
  }
@@ -15890,13 +15888,23 @@ const PageCanvas = forwardRef(
15890
15888
  if (freshMembers.length > 1) {
15891
15889
  isSyncingSelectionToFabricRef.current = true;
15892
15890
  try {
15893
- const newSel = new fabric.ActiveSelection(freshMembers, { canvas: fc });
15894
- if (activeSelectionSnapshot.groupSelectionId) {
15895
- applyLogicalGroupSelectionVisualState(newSel, activeSelectionSnapshot.groupSelectionId);
15891
+ const prevAS = activeBeforeSync instanceof fabric.ActiveSelection ? activeBeforeSync : null;
15892
+ const prevMembers = prevAS ? prevAS.getObjects() : [];
15893
+ const sameMembers = !!prevAS && prevMembers.length === freshMembers.length && prevMembers.every((m) => freshMembers.includes(m));
15894
+ const alreadyAligned = sameMembers && prevAS.__pixldocsAlignedAngle != null;
15895
+ if (sameMembers && alreadyAligned) {
15896
+ fc.setActiveObject(prevAS);
15897
+ prevAS.setCoords();
15898
+ fc.requestRenderAll();
15899
+ } else {
15900
+ const newSel = new fabric.ActiveSelection(freshMembers, { canvas: fc });
15901
+ if (activeSelectionSnapshot.groupSelectionId) {
15902
+ applyLogicalGroupSelectionVisualState(newSel, activeSelectionSnapshot.groupSelectionId);
15903
+ }
15904
+ fc.setActiveObject(newSel);
15905
+ newSel.setCoords();
15906
+ fc.requestRenderAll();
15896
15907
  }
15897
- fc.setActiveObject(newSel);
15898
- newSel.setCoords();
15899
- fc.requestRenderAll();
15900
15908
  } finally {
15901
15909
  isSyncingSelectionToFabricRef.current = false;
15902
15910
  }
@@ -24591,9 +24599,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24591
24599
  }
24592
24600
  return svgString;
24593
24601
  }
24594
- const resolvedPackageVersion = "0.5.363";
24602
+ const resolvedPackageVersion = "0.5.365";
24595
24603
  const PACKAGE_VERSION = resolvedPackageVersion;
24596
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.363";
24604
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.365";
24597
24605
  const roundParityValue = (value) => {
24598
24606
  if (typeof value !== "number") return value;
24599
24607
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25407,7 +25415,7 @@ class PixldocsRenderer {
25407
25415
  await this.waitForCanvasScene(container, cloned, i);
25408
25416
  }
25409
25417
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25410
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DtI5z_ZO.js");
25418
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-D9N1YQOw.js");
25411
25419
  const prepared = preparePagesForExport(
25412
25420
  cloned.pages,
25413
25421
  canvasWidth,
@@ -27727,7 +27735,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27727
27735
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27728
27736
  sanitizeSvgTreeForPdf(svgToDraw);
27729
27737
  try {
27730
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DtI5z_ZO.js");
27738
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-D9N1YQOw.js");
27731
27739
  try {
27732
27740
  await logTextMeasurementDiagnostic(svgToDraw);
27733
27741
  } catch {
@@ -28127,4 +28135,4 @@ export {
28127
28135
  buildTeaserBlurFlatKeys as y,
28128
28136
  collectFontDescriptorsFromConfig as z
28129
28137
  };
28130
- //# sourceMappingURL=index-Cw161PRH.js.map
28138
+ //# sourceMappingURL=index-ZXhxxB18.js.map