@pixldocs/canvas-renderer 0.5.440 → 0.5.441

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,6 +11661,12 @@ const applyTransformPreservingFlip = (obj, matrix) => {
11661
11661
  }
11662
11662
  obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11663
11663
  };
11664
+ const toggleLogicalFlipInMatrix = (matrix, flipX, flipY) => {
11665
+ if (!flipX && !flipY) return matrix;
11666
+ const sx = flipX ? -1 : 1;
11667
+ const sy = flipY ? -1 : 1;
11668
+ return [matrix[0] * sx, matrix[1] * sx, matrix[2] * sy, matrix[3] * sy, matrix[4], matrix[5]];
11669
+ };
11664
11670
  function applyWarpAwareSelectionBorders(selection) {
11665
11671
  var _a2;
11666
11672
  if (selection.__pixldocsOrigASHasBorders !== void 0) {
@@ -16452,6 +16458,10 @@ const PageCanvas = forwardRef(
16452
16458
  const isLineObj = obj instanceof fabric.Line;
16453
16459
  const isAutoShrinkText = (sourceElement == null ? void 0 : sourceElement.type) === "text" && sourceElement.overflowPolicy === "auto-shrink";
16454
16460
  const autoShrinkStoredHeight = isAutoShrinkText ? sourceElement.height : void 0;
16461
+ const persistedFlipX = (sourceElement == null ? void 0 : sourceElement.flipX) ?? obj.flipX ?? false;
16462
+ const persistedFlipY = (sourceElement == null ? void 0 : sourceElement.flipY) ?? obj.flipY ?? false;
16463
+ const cleanTransformMatrix = toggleLogicalFlipInMatrix(finalAbsoluteMatrix, persistedFlipX, persistedFlipY);
16464
+ const persistedDecomposed = fabric.util.qrDecompose(cleanTransformMatrix);
16455
16465
  const elementUpdate = {
16456
16466
  left: storePos.left,
16457
16467
  top: storePos.top,
@@ -16460,11 +16470,13 @@ const PageCanvas = forwardRef(
16460
16470
  // so finalWidth already reflects the new width chosen by the user.
16461
16471
  width: finalWidth,
16462
16472
  height: isLineObj ? 0 : isAutoShrinkText ? typeof autoShrinkStoredHeight === "number" ? autoShrinkStoredHeight : finalHeight : finalHeight,
16463
- angle: decomposed.angle,
16464
- skewX: isLineObj ? 0 : decomposed.skewX,
16465
- skewY: isLineObj ? 0 : decomposed.skewY,
16473
+ angle: persistedDecomposed.angle,
16474
+ skewX: isLineObj ? 0 : persistedDecomposed.skewX,
16475
+ skewY: isLineObj ? 0 : persistedDecomposed.skewY,
16466
16476
  scaleX: finalScaleX,
16467
16477
  scaleY: finalScaleY,
16478
+ flipX: persistedFlipX,
16479
+ flipY: persistedFlipY,
16468
16480
  transformMatrix: finalAbsoluteMatrix
16469
16481
  };
16470
16482
  if (obj instanceof fabric.Textbox) {
@@ -16514,15 +16526,19 @@ const PageCanvas = forwardRef(
16514
16526
  elementUpdate.scaleY = 1;
16515
16527
  elementUpdate.skewX = 0;
16516
16528
  elementUpdate.skewY = 0;
16517
- elementUpdate.transformMatrix = fabric.util.composeMatrix({
16518
- translateX: cx,
16519
- translateY: cy,
16520
- angle: cleanAngle,
16521
- scaleX: 1,
16522
- scaleY: 1,
16523
- skewX: 0,
16524
- skewY: 0
16525
- });
16529
+ elementUpdate.transformMatrix = toggleLogicalFlipInMatrix(
16530
+ fabric.util.composeMatrix({
16531
+ translateX: cx,
16532
+ translateY: cy,
16533
+ angle: cleanAngle,
16534
+ scaleX: 1,
16535
+ scaleY: 1,
16536
+ skewX: 0,
16537
+ skewY: 0
16538
+ }),
16539
+ elementUpdate.flipX,
16540
+ elementUpdate.flipY
16541
+ );
16526
16542
  } catch {
16527
16543
  }
16528
16544
  }
@@ -16556,15 +16572,19 @@ const PageCanvas = forwardRef(
16556
16572
  elementUpdate.scaleY = 1;
16557
16573
  elementUpdate.skewX = 0;
16558
16574
  elementUpdate.skewY = 0;
16559
- elementUpdate.transformMatrix = fabric.util.composeMatrix({
16560
- translateX: cx,
16561
- translateY: cy,
16562
- angle: cleanAngleI,
16563
- scaleX: 1,
16564
- scaleY: 1,
16565
- skewX: 0,
16566
- skewY: 0
16567
- });
16575
+ elementUpdate.transformMatrix = toggleLogicalFlipInMatrix(
16576
+ fabric.util.composeMatrix({
16577
+ translateX: cx,
16578
+ translateY: cy,
16579
+ angle: cleanAngleI,
16580
+ scaleX: 1,
16581
+ scaleY: 1,
16582
+ skewX: 0,
16583
+ skewY: 0
16584
+ }),
16585
+ elementUpdate.flipX,
16586
+ elementUpdate.flipY
16587
+ );
16568
16588
  } catch {
16569
16589
  }
16570
16590
  }
@@ -25851,9 +25871,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25851
25871
  }
25852
25872
  return svgString;
25853
25873
  }
25854
- const resolvedPackageVersion = "0.5.440";
25874
+ const resolvedPackageVersion = "0.5.441";
25855
25875
  const PACKAGE_VERSION = resolvedPackageVersion;
25856
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.440";
25876
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.441";
25857
25877
  const roundParityValue = (value) => {
25858
25878
  if (typeof value !== "number") return value;
25859
25879
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26667,7 +26687,7 @@ class PixldocsRenderer {
26667
26687
  await this.waitForCanvasScene(container, cloned, i);
26668
26688
  }
26669
26689
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26670
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-BkFH66cH.js");
26690
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DDz6_cPc.js");
26671
26691
  const prepared = preparePagesForExport(
26672
26692
  cloned.pages,
26673
26693
  canvasWidth,
@@ -28987,7 +29007,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
28987
29007
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
28988
29008
  sanitizeSvgTreeForPdf(svgToDraw);
28989
29009
  try {
28990
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-BkFH66cH.js");
29010
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DDz6_cPc.js");
28991
29011
  try {
28992
29012
  await logTextMeasurementDiagnostic(svgToDraw);
28993
29013
  } catch {
@@ -29387,4 +29407,4 @@ export {
29387
29407
  buildTeaserBlurFlatKeys as y,
29388
29408
  collectFontDescriptorsFromConfig as z
29389
29409
  };
29390
- //# sourceMappingURL=index-H0u34DDY.js.map
29410
+ //# sourceMappingURL=index-0kscM6nx.js.map