@pixldocs/canvas-renderer 0.5.401 → 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,12 +11523,14 @@ 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 && // Dominant-angle alignment is required to keep side-handle resize
11527
- // shear-free on rotated children. Without it, Fabric's AS drags
11528
- // along world X/Y while rotated children render in their local
11529
- // frame visible skew. Frozen group angle (when persisted) takes
11530
- // priority above; otherwise fall back to dominant.
11531
- (isLogicalGroupSelection || kids.length === 1 || dominant.count >= 2 || dominant.count === kids.length)) {
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.
11533
+ (!isLogicalGroupSelection && (kids.length === 1 || dominant.count >= 2 || dominant.count === kids.length))) {
11532
11534
  targetAngle = dominant.angle;
11533
11535
  }
11534
11536
  if (targetAngle != null) {
@@ -25135,9 +25137,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25135
25137
  }
25136
25138
  return svgString;
25137
25139
  }
25138
- const resolvedPackageVersion = "0.5.401";
25140
+ const resolvedPackageVersion = "0.5.402";
25139
25141
  const PACKAGE_VERSION = resolvedPackageVersion;
25140
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.401";
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-B25ym_AP.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-B25ym_AP.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-DqOy3Wio.cjs.map
28673
+ //# sourceMappingURL=index-CkhKSrXp.cjs.map