@pixldocs/canvas-renderer 0.5.364 → 0.5.366

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.
@@ -11552,6 +11552,7 @@ const PageCanvas = react.forwardRef(
11552
11552
  }, [restoreSuppressedGroupMemberVisuals]);
11553
11553
  const skipSelectionClearOnDiscardRef = react.useRef(false);
11554
11554
  const skipActiveSelectionBakeOnClearRef = react.useRef(false);
11555
+ const suppressObjectModifiedDuringInternalReselectRef = react.useRef(false);
11555
11556
  const preserveEditingScopeOnSelectionClearRef = react.useRef(false);
11556
11557
  const preserveActiveSelectionAfterTransformRef = react.useRef(null);
11557
11558
  const recentGroupSelectionRestoreRef = react.useRef(null);
@@ -14538,6 +14539,7 @@ const PageCanvas = react.forwardRef(
14538
14539
  fabricCanvas.on("object:modified", (e) => {
14539
14540
  var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
14540
14541
  try {
14542
+ if (suppressObjectModifiedDuringInternalReselectRef.current) return;
14541
14543
  dragStarted = false;
14542
14544
  setGuides([]);
14543
14545
  setGroupOverlayLiveBoundsRef.current(null);
@@ -15514,6 +15516,7 @@ const PageCanvas = react.forwardRef(
15514
15516
  });
15515
15517
  const prevRenderOnAddRemove = fabricCanvas.renderOnAddRemove;
15516
15518
  fabricCanvas.renderOnAddRemove = false;
15519
+ suppressObjectModifiedDuringInternalReselectRef.current = true;
15517
15520
  skipSelectionClearOnDiscardRef.current = true;
15518
15521
  skipActiveSelectionBakeOnClearRef.current = true;
15519
15522
  try {
@@ -15565,6 +15568,7 @@ const PageCanvas = react.forwardRef(
15565
15568
  }
15566
15569
  skipSelectionClearOnDiscardRef.current = false;
15567
15570
  fabricCanvas.renderOnAddRemove = prevRenderOnAddRemove;
15571
+ suppressObjectModifiedDuringInternalReselectRef.current = false;
15568
15572
  if (wasGroupSel) {
15569
15573
  const resizeRestoreSnapshot = {
15570
15574
  memberIds: membersToReselect.map((obj) => getObjectId(obj)).filter((id) => !!id && id !== "__background__"),
@@ -15582,6 +15586,9 @@ const PageCanvas = react.forwardRef(
15582
15586
  commitHistory();
15583
15587
  unlockEditsSoon();
15584
15588
  } catch (e2) {
15589
+ suppressObjectModifiedDuringInternalReselectRef.current = false;
15590
+ skipSelectionClearOnDiscardRef.current = false;
15591
+ skipActiveSelectionBakeOnClearRef.current = false;
15585
15592
  unlockEditsSoon();
15586
15593
  }
15587
15594
  });
@@ -15906,13 +15913,23 @@ const PageCanvas = react.forwardRef(
15906
15913
  if (freshMembers.length > 1) {
15907
15914
  isSyncingSelectionToFabricRef.current = true;
15908
15915
  try {
15909
- const newSel = new fabric__namespace.ActiveSelection(freshMembers, { canvas: fc });
15910
- if (activeSelectionSnapshot.groupSelectionId) {
15911
- applyLogicalGroupSelectionVisualState(newSel, activeSelectionSnapshot.groupSelectionId);
15916
+ const prevAS = activeBeforeSync instanceof fabric__namespace.ActiveSelection ? activeBeforeSync : null;
15917
+ const prevMembers = prevAS ? prevAS.getObjects() : [];
15918
+ const sameMembers = !!prevAS && prevMembers.length === freshMembers.length && prevMembers.every((m) => freshMembers.includes(m));
15919
+ const alreadyAligned = sameMembers && prevAS.__pixldocsAlignedAngle != null;
15920
+ if (sameMembers && alreadyAligned) {
15921
+ fc.setActiveObject(prevAS);
15922
+ prevAS.setCoords();
15923
+ fc.requestRenderAll();
15924
+ } else {
15925
+ const newSel = new fabric__namespace.ActiveSelection(freshMembers, { canvas: fc });
15926
+ if (activeSelectionSnapshot.groupSelectionId) {
15927
+ applyLogicalGroupSelectionVisualState(newSel, activeSelectionSnapshot.groupSelectionId);
15928
+ }
15929
+ fc.setActiveObject(newSel);
15930
+ newSel.setCoords();
15931
+ fc.requestRenderAll();
15912
15932
  }
15913
- fc.setActiveObject(newSel);
15914
- newSel.setCoords();
15915
- fc.requestRenderAll();
15916
15933
  } finally {
15917
15934
  isSyncingSelectionToFabricRef.current = false;
15918
15935
  }
@@ -24607,9 +24624,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24607
24624
  }
24608
24625
  return svgString;
24609
24626
  }
24610
- const resolvedPackageVersion = "0.5.364";
24627
+ const resolvedPackageVersion = "0.5.366";
24611
24628
  const PACKAGE_VERSION = resolvedPackageVersion;
24612
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.364";
24629
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.366";
24613
24630
  const roundParityValue = (value) => {
24614
24631
  if (typeof value !== "number") return value;
24615
24632
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25423,7 +25440,7 @@ class PixldocsRenderer {
25423
25440
  await this.waitForCanvasScene(container, cloned, i);
25424
25441
  }
25425
25442
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25426
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-Sn_yZjdL.cjs"));
25443
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CKZP3dKs.cjs"));
25427
25444
  const prepared = preparePagesForExport(
25428
25445
  cloned.pages,
25429
25446
  canvasWidth,
@@ -27743,7 +27760,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27743
27760
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27744
27761
  sanitizeSvgTreeForPdf(svgToDraw);
27745
27762
  try {
27746
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-Sn_yZjdL.cjs"));
27763
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CKZP3dKs.cjs"));
27747
27764
  try {
27748
27765
  await logTextMeasurementDiagnostic(svgToDraw);
27749
27766
  } catch {
@@ -28140,4 +28157,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28140
28157
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28141
28158
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28142
28159
  exports.warmTemplateFromForm = warmTemplateFromForm;
28143
- //# sourceMappingURL=index-C1ijZRH6.cjs.map
28160
+ //# sourceMappingURL=index-HiqL7bUV.cjs.map