@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.
@@ -11661,10 +11661,10 @@ const applyTransformPreservingFlip = (obj, matrix) => {
11661
11661
  }
11662
11662
  obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11663
11663
  };
11664
- const restorePersistedFlipState = (obj, flipX, flipY) => {
11664
+ const restorePersistedFlipState = (obj, flipX, flipY, angle) => {
11665
11665
  const sx = Math.abs(Number(obj.scaleX ?? 1)) || 1;
11666
11666
  const sy = Math.abs(Number(obj.scaleY ?? 1)) || 1;
11667
- obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11667
+ obj.set({ scaleX: sx, scaleY: sy, flipX, flipY, ...Number.isFinite(angle) ? { angle } : {} });
11668
11668
  obj.setCoords();
11669
11669
  obj.dirty = true;
11670
11670
  };
@@ -16483,8 +16483,9 @@ const PageCanvas = forwardRef(
16483
16483
  const objectFlipY = obj.flipY ?? false;
16484
16484
  const persistedFlipX = (sourceElement == null ? void 0 : sourceElement.flipX) ?? objectFlipX;
16485
16485
  const persistedFlipY = (sourceElement == null ? void 0 : sourceElement.flipY) ?? objectFlipY;
16486
+ const persistedAngle = sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0;
16486
16487
  const isActiveSelectionResizeGesture = activeSelectionResizeHandle === "ml" || activeSelectionResizeHandle === "mr" || activeSelectionResizeHandle === "mt" || activeSelectionResizeHandle === "mb" || activeSelectionResizeHandle === "tl" || activeSelectionResizeHandle === "tr" || activeSelectionResizeHandle === "bl" || activeSelectionResizeHandle === "br";
16487
- 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;
16488
+ const expectedCleanAngle = isActiveSelection && isActiveSelectionResizeGesture ? sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0 : void 0;
16488
16489
  const normalizedFinalAbsoluteMatrix = normalizeMatrixForPersistedFlip(
16489
16490
  toggleLogicalFlipInMatrix(
16490
16491
  finalAbsoluteMatrix,
@@ -16498,7 +16499,7 @@ const PageCanvas = forwardRef(
16498
16499
  const cleanTransformMatrix = toggleLogicalFlipInMatrix(normalizedFinalAbsoluteMatrix, persistedFlipX, persistedFlipY);
16499
16500
  const persistedDecomposed = fabric.util.qrDecompose(cleanTransformMatrix);
16500
16501
  if (isActiveSelection && (obj instanceof fabric.FabricImage || obj instanceof fabric.Group && obj.__cropGroup)) {
16501
- activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY });
16502
+ activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY, angle: persistedAngle });
16502
16503
  }
16503
16504
  const elementUpdate = {
16504
16505
  left: storePos.left,
@@ -16724,14 +16725,14 @@ const PageCanvas = forwardRef(
16724
16725
  skipActiveSelectionBakeOnClearRef.current = true;
16725
16726
  try {
16726
16727
  for (const restore of activeSelectionFlipRestores) {
16727
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16728
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16728
16729
  }
16729
16730
  fabricCanvas.discardActiveObject();
16730
16731
  } finally {
16731
16732
  skipActiveSelectionBakeOnClearRef.current = false;
16732
16733
  }
16733
16734
  for (const restore of activeSelectionFlipRestores) {
16734
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16735
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16735
16736
  }
16736
16737
  for (const bake of pendingCropGroupFrameBakes) {
16737
16738
  const ct = bake.obj.__cropData;
@@ -16752,6 +16753,9 @@ const PageCanvas = forwardRef(
16752
16753
  updateCoverLayout(bake.obj);
16753
16754
  bake.obj.setCoords();
16754
16755
  }
16756
+ for (const restore of activeSelectionFlipRestores) {
16757
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16758
+ }
16755
16759
  if (membersToReselect.length > 1) {
16756
16760
  const newSel = new fabric.ActiveSelection(membersToReselect, { canvas: fabricCanvas });
16757
16761
  if (wasGroupSel) restoreGroupSelectionVisualState(newSel, wasGroupSel);
@@ -25919,9 +25923,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25919
25923
  }
25920
25924
  return svgString;
25921
25925
  }
25922
- const resolvedPackageVersion = "0.5.444";
25926
+ const resolvedPackageVersion = "0.5.445";
25923
25927
  const PACKAGE_VERSION = resolvedPackageVersion;
25924
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.444";
25928
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.445";
25925
25929
  const roundParityValue = (value) => {
25926
25930
  if (typeof value !== "number") return value;
25927
25931
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26735,7 +26739,7 @@ class PixldocsRenderer {
26735
26739
  await this.waitForCanvasScene(container, cloned, i);
26736
26740
  }
26737
26741
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26738
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-D4YSdx4j.js");
26742
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-B5RZe-Kw.js");
26739
26743
  const prepared = preparePagesForExport(
26740
26744
  cloned.pages,
26741
26745
  canvasWidth,
@@ -29055,7 +29059,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29055
29059
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29056
29060
  sanitizeSvgTreeForPdf(svgToDraw);
29057
29061
  try {
29058
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-D4YSdx4j.js");
29062
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-B5RZe-Kw.js");
29059
29063
  try {
29060
29064
  await logTextMeasurementDiagnostic(svgToDraw);
29061
29065
  } catch {
@@ -29455,4 +29459,4 @@ export {
29455
29459
  buildTeaserBlurFlatKeys as y,
29456
29460
  collectFontDescriptorsFromConfig as z
29457
29461
  };
29458
- //# sourceMappingURL=index-BBkKxCQ_.js.map
29462
+ //# sourceMappingURL=index-DX5LKnWg.js.map