@pixldocs/canvas-renderer 0.5.400 → 0.5.402

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.
@@ -11523,11 +11523,13 @@ function applyWarpAwareSelectionBorders(selection) {
11523
11523
  if (isLogicalGroupSelection && typeof frozenGroupAngle === "number" && Math.abs(frozenGroupAngle) > 0.5) {
11524
11524
  targetAngle = frozenGroupAngle;
11525
11525
  }
11526
- if (targetAngle == null && dominant && Math.abs(dominant.angle) > 0.5 && // Canva-style: for a *logical group* the bbox angle is authoritative
11527
- // from the persisted group.angle (frozenGroupAngle) only. Individual
11528
- // child rotations must NEVER drift the group's selection bbox angle.
11529
- // The dominant-angle fallback is reserved for ad-hoc multi-selects
11530
- // (no logical group), where matching child rotation is desirable.
11526
+ if (targetAngle == null && dominant && Math.abs(dominant.angle) > 0.5 && // Canva-style: a *logical group* bbox is authoritative from the
11527
+ // persisted group.angle only. Individual child rotations must not
11528
+ // drift the group's selection bbox angle. The per-child rotation-
11529
+ // aware reflow (S^-1·R(θ) decomposition) keeps side-handle drags
11530
+ // shear-free on rotated text/image/crop-group kids without needing
11531
+ // the AS itself to tilt.
11532
+ // Ad-hoc multi-select (non-logical) still aligns to dominant.
11531
11533
  (!isLogicalGroupSelection && (kids.length === 1 || dominant.count >= 2 || dominant.count === kids.length))) {
11532
11534
  targetAngle = dominant.angle;
11533
11535
  }
@@ -25135,9 +25137,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25135
25137
  }
25136
25138
  return svgString;
25137
25139
  }
25138
- const resolvedPackageVersion = "0.5.400";
25140
+ const resolvedPackageVersion = "0.5.402";
25139
25141
  const PACKAGE_VERSION = resolvedPackageVersion;
25140
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.400";
25142
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.402";
25141
25143
  const roundParityValue = (value) => {
25142
25144
  if (typeof value !== "number") return value;
25143
25145
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25951,7 +25953,7 @@ class PixldocsRenderer {
25951
25953
  await this.waitForCanvasScene(container, cloned, i);
25952
25954
  }
25953
25955
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25954
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-EaqO1vVi.cjs"));
25956
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CuA61scC.cjs"));
25955
25957
  const prepared = preparePagesForExport(
25956
25958
  cloned.pages,
25957
25959
  canvasWidth,
@@ -28271,7 +28273,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
28271
28273
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
28272
28274
  sanitizeSvgTreeForPdf(svgToDraw);
28273
28275
  try {
28274
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-EaqO1vVi.cjs"));
28276
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CuA61scC.cjs"));
28275
28277
  try {
28276
28278
  await logTextMeasurementDiagnostic(svgToDraw);
28277
28279
  } catch {
@@ -28668,4 +28670,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28668
28670
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28669
28671
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28670
28672
  exports.warmTemplateFromForm = warmTemplateFromForm;
28671
- //# sourceMappingURL=index-CJQpuR_V.cjs.map
28673
+ //# sourceMappingURL=index-CkhKSrXp.cjs.map