@pixldocs/canvas-renderer 0.5.449 → 0.5.450

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.
@@ -11682,10 +11682,16 @@ const applyTransformPreservingFlip = (obj, matrix) => {
11682
11682
  }
11683
11683
  obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11684
11684
  };
11685
- const restorePersistedFlipState = (obj, flipX, flipY) => {
11685
+ const restorePersistedFlipState = (obj, flipX, flipY, angle) => {
11686
11686
  const sx = Math.abs(Number(obj.scaleX ?? 1)) || 1;
11687
11687
  const sy = Math.abs(Number(obj.scaleY ?? 1)) || 1;
11688
- obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11688
+ obj.set({
11689
+ scaleX: sx,
11690
+ scaleY: sy,
11691
+ flipX,
11692
+ flipY,
11693
+ ...Number.isFinite(angle) ? { angle } : {}
11694
+ });
11689
11695
  obj.setCoords();
11690
11696
  obj.dirty = true;
11691
11697
  };
@@ -16518,9 +16524,6 @@ const PageCanvas = react.forwardRef(
16518
16524
  );
16519
16525
  const cleanTransformMatrix = toggleLogicalFlipInMatrix(normalizedFinalAbsoluteMatrix, persistedFlipX, persistedFlipY);
16520
16526
  const persistedDecomposed = fabric__namespace.util.qrDecompose(cleanTransformMatrix);
16521
- if (isActiveSelection && (obj instanceof fabric__namespace.FabricImage || obj instanceof fabric__namespace.Group && obj.__cropGroup)) {
16522
- activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY });
16523
- }
16524
16527
  const elementUpdate = {
16525
16528
  left: storePos.left,
16526
16529
  top: storePos.top,
@@ -16649,6 +16652,9 @@ const PageCanvas = react.forwardRef(
16649
16652
  objectBeforeStoreWrite: summarizeFabricObjectForResizeDebug(obj)
16650
16653
  });
16651
16654
  }
16655
+ if (isActiveSelection && (obj instanceof fabric__namespace.FabricImage || obj instanceof fabric__namespace.Group && obj.__cropGroup)) {
16656
+ activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY, angle: elementUpdate.angle });
16657
+ }
16652
16658
  if (isActiveSelection) {
16653
16659
  logRotGroupImageDrift("store-update-child", {
16654
16660
  time: Math.round(performance.now()),
@@ -16745,14 +16751,14 @@ const PageCanvas = react.forwardRef(
16745
16751
  skipActiveSelectionBakeOnClearRef.current = true;
16746
16752
  try {
16747
16753
  for (const restore of activeSelectionFlipRestores) {
16748
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16754
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16749
16755
  }
16750
16756
  fabricCanvas.discardActiveObject();
16751
16757
  } finally {
16752
16758
  skipActiveSelectionBakeOnClearRef.current = false;
16753
16759
  }
16754
16760
  for (const restore of activeSelectionFlipRestores) {
16755
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16761
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16756
16762
  }
16757
16763
  for (const bake of pendingCropGroupFrameBakes) {
16758
16764
  const ct = bake.obj.__cropData;
@@ -25940,9 +25946,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25940
25946
  }
25941
25947
  return svgString;
25942
25948
  }
25943
- const resolvedPackageVersion = "0.5.449";
25949
+ const resolvedPackageVersion = "0.5.450";
25944
25950
  const PACKAGE_VERSION = resolvedPackageVersion;
25945
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.449";
25951
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.450";
25946
25952
  const roundParityValue = (value) => {
25947
25953
  if (typeof value !== "number") return value;
25948
25954
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26756,7 +26762,7 @@ class PixldocsRenderer {
26756
26762
  await this.waitForCanvasScene(container, cloned, i);
26757
26763
  }
26758
26764
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26759
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DDTYu7h6.cjs"));
26765
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CF7KqDSy.cjs"));
26760
26766
  const prepared = preparePagesForExport(
26761
26767
  cloned.pages,
26762
26768
  canvasWidth,
@@ -29076,7 +29082,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29076
29082
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29077
29083
  sanitizeSvgTreeForPdf(svgToDraw);
29078
29084
  try {
29079
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DDTYu7h6.cjs"));
29085
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CF7KqDSy.cjs"));
29080
29086
  try {
29081
29087
  await logTextMeasurementDiagnostic(svgToDraw);
29082
29088
  } catch {
@@ -29473,4 +29479,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
29473
29479
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
29474
29480
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
29475
29481
  exports.warmTemplateFromForm = warmTemplateFromForm;
29476
- //# sourceMappingURL=index-DJhcPNx7.cjs.map
29482
+ //# sourceMappingURL=index-DM88x3tM.cjs.map