@pixldocs/canvas-renderer 0.5.444 → 0.5.445

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.
@@ -11679,10 +11679,10 @@ const applyTransformPreservingFlip = (obj, matrix) => {
11679
11679
  }
11680
11680
  obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11681
11681
  };
11682
- const restorePersistedFlipState = (obj, flipX, flipY) => {
11682
+ const restorePersistedFlipState = (obj, flipX, flipY, angle) => {
11683
11683
  const sx = Math.abs(Number(obj.scaleX ?? 1)) || 1;
11684
11684
  const sy = Math.abs(Number(obj.scaleY ?? 1)) || 1;
11685
- obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11685
+ obj.set({ scaleX: sx, scaleY: sy, flipX, flipY, ...Number.isFinite(angle) ? { angle } : {} });
11686
11686
  obj.setCoords();
11687
11687
  obj.dirty = true;
11688
11688
  };
@@ -16501,8 +16501,9 @@ const PageCanvas = react.forwardRef(
16501
16501
  const objectFlipY = obj.flipY ?? false;
16502
16502
  const persistedFlipX = (sourceElement == null ? void 0 : sourceElement.flipX) ?? objectFlipX;
16503
16503
  const persistedFlipY = (sourceElement == null ? void 0 : sourceElement.flipY) ?? objectFlipY;
16504
+ const persistedAngle = sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0;
16504
16505
  const isActiveSelectionResizeGesture = activeSelectionResizeHandle === "ml" || activeSelectionResizeHandle === "mr" || activeSelectionResizeHandle === "mt" || activeSelectionResizeHandle === "mb" || activeSelectionResizeHandle === "tl" || activeSelectionResizeHandle === "tr" || activeSelectionResizeHandle === "bl" || activeSelectionResizeHandle === "br";
16505
- const expectedCleanAngle = isActiveSelection && isActiveSelectionResizeGesture ? Number.isFinite(sourceElement == null ? void 0 : sourceElement.angle) ? (sourceElement == null ? void 0 : sourceElement.angle) ?? 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0 : void 0;
16506
+ const expectedCleanAngle = isActiveSelection && isActiveSelectionResizeGesture ? sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0 : void 0;
16506
16507
  const normalizedFinalAbsoluteMatrix = normalizeMatrixForPersistedFlip(
16507
16508
  toggleLogicalFlipInMatrix(
16508
16509
  finalAbsoluteMatrix,
@@ -16516,7 +16517,7 @@ const PageCanvas = react.forwardRef(
16516
16517
  const cleanTransformMatrix = toggleLogicalFlipInMatrix(normalizedFinalAbsoluteMatrix, persistedFlipX, persistedFlipY);
16517
16518
  const persistedDecomposed = fabric__namespace.util.qrDecompose(cleanTransformMatrix);
16518
16519
  if (isActiveSelection && (obj instanceof fabric__namespace.FabricImage || obj instanceof fabric__namespace.Group && obj.__cropGroup)) {
16519
- activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY });
16520
+ activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY, angle: persistedAngle });
16520
16521
  }
16521
16522
  const elementUpdate = {
16522
16523
  left: storePos.left,
@@ -16742,14 +16743,14 @@ const PageCanvas = react.forwardRef(
16742
16743
  skipActiveSelectionBakeOnClearRef.current = true;
16743
16744
  try {
16744
16745
  for (const restore of activeSelectionFlipRestores) {
16745
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16746
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16746
16747
  }
16747
16748
  fabricCanvas.discardActiveObject();
16748
16749
  } finally {
16749
16750
  skipActiveSelectionBakeOnClearRef.current = false;
16750
16751
  }
16751
16752
  for (const restore of activeSelectionFlipRestores) {
16752
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16753
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16753
16754
  }
16754
16755
  for (const bake of pendingCropGroupFrameBakes) {
16755
16756
  const ct = bake.obj.__cropData;
@@ -16770,6 +16771,9 @@ const PageCanvas = react.forwardRef(
16770
16771
  updateCoverLayout(bake.obj);
16771
16772
  bake.obj.setCoords();
16772
16773
  }
16774
+ for (const restore of activeSelectionFlipRestores) {
16775
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16776
+ }
16773
16777
  if (membersToReselect.length > 1) {
16774
16778
  const newSel = new fabric__namespace.ActiveSelection(membersToReselect, { canvas: fabricCanvas });
16775
16779
  if (wasGroupSel) restoreGroupSelectionVisualState(newSel, wasGroupSel);
@@ -25937,9 +25941,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25937
25941
  }
25938
25942
  return svgString;
25939
25943
  }
25940
- const resolvedPackageVersion = "0.5.444";
25944
+ const resolvedPackageVersion = "0.5.445";
25941
25945
  const PACKAGE_VERSION = resolvedPackageVersion;
25942
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.444";
25946
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.445";
25943
25947
  const roundParityValue = (value) => {
25944
25948
  if (typeof value !== "number") return value;
25945
25949
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26753,7 +26757,7 @@ class PixldocsRenderer {
26753
26757
  await this.waitForCanvasScene(container, cloned, i);
26754
26758
  }
26755
26759
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26756
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-Cy6iRFYd.cjs"));
26760
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CuC9pjN_.cjs"));
26757
26761
  const prepared = preparePagesForExport(
26758
26762
  cloned.pages,
26759
26763
  canvasWidth,
@@ -29073,7 +29077,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29073
29077
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29074
29078
  sanitizeSvgTreeForPdf(svgToDraw);
29075
29079
  try {
29076
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-Cy6iRFYd.cjs"));
29080
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CuC9pjN_.cjs"));
29077
29081
  try {
29078
29082
  await logTextMeasurementDiagnostic(svgToDraw);
29079
29083
  } catch {
@@ -29470,4 +29474,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
29470
29474
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
29471
29475
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
29472
29476
  exports.warmTemplateFromForm = warmTemplateFromForm;
29473
- //# sourceMappingURL=index-DTJ_wDD-.cjs.map
29477
+ //# sourceMappingURL=index-BtExVWAT.cjs.map