@pixldocs/canvas-renderer 0.5.400 → 0.5.401

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,12 @@ 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.
11531
- (!isLogicalGroupSelection && (kids.length === 1 || dominant.count >= 2 || dominant.count === kids.length))) {
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)) {
11532
11532
  targetAngle = dominant.angle;
11533
11533
  }
11534
11534
  if (targetAngle != null) {
@@ -25135,9 +25135,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25135
25135
  }
25136
25136
  return svgString;
25137
25137
  }
25138
- const resolvedPackageVersion = "0.5.400";
25138
+ const resolvedPackageVersion = "0.5.401";
25139
25139
  const PACKAGE_VERSION = resolvedPackageVersion;
25140
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.400";
25140
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.401";
25141
25141
  const roundParityValue = (value) => {
25142
25142
  if (typeof value !== "number") return value;
25143
25143
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25951,7 +25951,7 @@ class PixldocsRenderer {
25951
25951
  await this.waitForCanvasScene(container, cloned, i);
25952
25952
  }
25953
25953
  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"));
25954
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-B25ym_AP.cjs"));
25955
25955
  const prepared = preparePagesForExport(
25956
25956
  cloned.pages,
25957
25957
  canvasWidth,
@@ -28271,7 +28271,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
28271
28271
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
28272
28272
  sanitizeSvgTreeForPdf(svgToDraw);
28273
28273
  try {
28274
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-EaqO1vVi.cjs"));
28274
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-B25ym_AP.cjs"));
28275
28275
  try {
28276
28276
  await logTextMeasurementDiagnostic(svgToDraw);
28277
28277
  } catch {
@@ -28668,4 +28668,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28668
28668
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28669
28669
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28670
28670
  exports.warmTemplateFromForm = warmTemplateFromForm;
28671
- //# sourceMappingURL=index-CJQpuR_V.cjs.map
28671
+ //# sourceMappingURL=index-DqOy3Wio.cjs.map