@pixldocs/canvas-renderer 0.5.364 → 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.
@@ -15888,13 +15888,23 @@ const PageCanvas = forwardRef(
15888
15888
  if (freshMembers.length > 1) {
15889
15889
  isSyncingSelectionToFabricRef.current = true;
15890
15890
  try {
15891
- const newSel = new fabric.ActiveSelection(freshMembers, { canvas: fc });
15892
- if (activeSelectionSnapshot.groupSelectionId) {
15893
- 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();
15894
15907
  }
15895
- fc.setActiveObject(newSel);
15896
- newSel.setCoords();
15897
- fc.requestRenderAll();
15898
15908
  } finally {
15899
15909
  isSyncingSelectionToFabricRef.current = false;
15900
15910
  }
@@ -24589,9 +24599,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24589
24599
  }
24590
24600
  return svgString;
24591
24601
  }
24592
- const resolvedPackageVersion = "0.5.364";
24602
+ const resolvedPackageVersion = "0.5.365";
24593
24603
  const PACKAGE_VERSION = resolvedPackageVersion;
24594
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.364";
24604
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.365";
24595
24605
  const roundParityValue = (value) => {
24596
24606
  if (typeof value !== "number") return value;
24597
24607
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25405,7 +25415,7 @@ class PixldocsRenderer {
25405
25415
  await this.waitForCanvasScene(container, cloned, i);
25406
25416
  }
25407
25417
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25408
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DHpvNU2-.js");
25418
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-D9N1YQOw.js");
25409
25419
  const prepared = preparePagesForExport(
25410
25420
  cloned.pages,
25411
25421
  canvasWidth,
@@ -27725,7 +27735,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27725
27735
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27726
27736
  sanitizeSvgTreeForPdf(svgToDraw);
27727
27737
  try {
27728
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DHpvNU2-.js");
27738
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-D9N1YQOw.js");
27729
27739
  try {
27730
27740
  await logTextMeasurementDiagnostic(svgToDraw);
27731
27741
  } catch {
@@ -28125,4 +28135,4 @@ export {
28125
28135
  buildTeaserBlurFlatKeys as y,
28126
28136
  collectFontDescriptorsFromConfig as z
28127
28137
  };
28128
- //# sourceMappingURL=index-BX1STPJj.js.map
28138
+ //# sourceMappingURL=index-ZXhxxB18.js.map