@pixldocs/canvas-renderer 0.5.418 → 0.5.420

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.
@@ -14354,7 +14354,7 @@ const PageCanvas = forwardRef(
14354
14354
  fabricCanvas.on("selection:cleared", () => {
14355
14355
  });
14356
14356
  fabricCanvas.on("object:scaling", (e) => {
14357
- var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
14357
+ var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
14358
14358
  if (!isActiveRef.current) return;
14359
14359
  const t = e.target;
14360
14360
  if (t) lastResizeScaleTargetRef.current = t;
@@ -14645,9 +14645,14 @@ const PageCanvas = forwardRef(
14645
14645
  let didReflowTextChild = false;
14646
14646
  for (const child of obj.getObjects()) {
14647
14647
  if (child.__asLiveOrigAngle == null) {
14648
- child.__asLiveOrigAngle = child.angle ?? 0;
14648
+ const childId = getObjectId(child);
14649
+ const sourceChild = childId ? elementsRef.current.find((el) => el.id === childId) : void 0;
14650
+ const storedWorldAngle = Number.isFinite(sourceChild == null ? void 0 : sourceChild.angle) ? sourceChild.angle ?? 0 : void 0;
14651
+ const logicalGroupId = obj.__pixldocsGroupSelection;
14652
+ const groupWorldAngle = logicalGroupId ? ((_k = groupSelectionTransformStartRef.current) == null ? void 0 : _k.groupId) === logicalGroupId ? groupSelectionTransformStartRef.current.groupAngle : obj.__pixldocsFrozenGroupAngle ?? (obj.angle ?? 0) : 0;
14653
+ child.__asLiveOrigAngle = storedWorldAngle !== void 0 ? storedWorldAngle - groupWorldAngle : child.angle ?? 0;
14649
14654
  }
14650
- if (child instanceof fabric.Group && (child.__cropGroup || ((_k = child._ct) == null ? void 0 : _k.isCropGroup))) {
14655
+ if (child instanceof fabric.Group && (child.__cropGroup || ((_l = child._ct) == null ? void 0 : _l.isCropGroup))) {
14651
14656
  const ct = child.__cropData;
14652
14657
  if (!ct) continue;
14653
14658
  if (child.__asLiveOrigAngle == null) {
@@ -14816,7 +14821,7 @@ const PageCanvas = forwardRef(
14816
14821
  child.dirty = true;
14817
14822
  didReflowTextChild = true;
14818
14823
  }
14819
- if (isXSide && ((_l = groupShiftReflowSnapshotRef.current) == null ? void 0 : _l.selection) === obj) {
14824
+ if (isXSide && ((_m = groupShiftReflowSnapshotRef.current) == null ? void 0 : _m.selection) === obj) {
14820
14825
  const snap = groupShiftReflowSnapshotRef.current;
14821
14826
  const anchorEntry = snap.children[0];
14822
14827
  const anchorTopLive = anchorEntry.obj.top ?? 0;
@@ -14977,7 +14982,7 @@ const PageCanvas = forwardRef(
14977
14982
  setGuides(gridGuidesForScale.length ? [...scaleGuides, ...gridGuidesForScale] : scaleGuides);
14978
14983
  if (drilledGroupIdRef.current) {
14979
14984
  try {
14980
- (_m = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _m.call(fabricCanvas);
14985
+ (_n = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _n.call(fabricCanvas);
14981
14986
  } catch {
14982
14987
  }
14983
14988
  }
@@ -16269,9 +16274,8 @@ const PageCanvas = forwardRef(
16269
16274
  const isRotatedImg = Math.min(normAng, 360 - normAng) > 0.5;
16270
16275
  if (isRotatedImg && activeObj instanceof fabric.ActiveSelection) {
16271
16276
  try {
16272
- const parentWorldAngle = activeObj.angle ?? 0;
16273
16277
  const liveWorldAngleI = Number.isFinite(obj.__asLiveWorldAngle) ? obj.__asLiveWorldAngle : (activeObj.angle ?? 0) + childLocalAngleSrc;
16274
- const cleanAngleI = Number.isFinite(liveWorldAngleI) ? liveWorldAngleI - parentWorldAngle : childLocalAngleSrc;
16278
+ const cleanAngleI = Number.isFinite(liveWorldAngleI) ? liveWorldAngleI : (activeObj.angle ?? 0) + childLocalAngleSrc;
16275
16279
  const cleanW = Math.max(1, Number(obj.__asLiveFinalW ?? elementUpdate.width ?? finalWidth));
16276
16280
  const cleanH = Math.max(1, Number(obj.__asLiveFinalH ?? elementUpdate.height ?? finalHeight));
16277
16281
  const cx = Number.isFinite(obj.__asLiveWorldCenterX) ? obj.__asLiveWorldCenterX : decomposed.translateX ?? absoluteLeft + cleanW / 2;
@@ -16279,8 +16283,8 @@ const PageCanvas = forwardRef(
16279
16283
  const thetaI = fabric.util.degreesToRadians(cleanAngleI);
16280
16284
  const cosI = Math.cos(thetaI);
16281
16285
  const sinI = Math.sin(thetaI);
16282
- const cleanAbsLeft = cx - (cosI * cleanW / 2 - sinI * cleanH / 2);
16283
- const cleanAbsTop = cy - (sinI * cleanW / 2 + cosI * cleanH / 2);
16286
+ const cleanAbsLeft = isCropGroupObj ? cx - cleanW / 2 : cx - (cosI * cleanW / 2 - sinI * cleanH / 2);
16287
+ const cleanAbsTop = isCropGroupObj ? cy - cleanH / 2 : cy - (sinI * cleanW / 2 + cosI * cleanH / 2);
16284
16288
  const cleanStorePos = absoluteToStorePosition(cleanAbsLeft, cleanAbsTop, objId, pageChildrenForSave);
16285
16289
  elementUpdate.left = cleanStorePos.left;
16286
16290
  elementUpdate.top = cleanStorePos.top;
@@ -25546,9 +25550,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25546
25550
  }
25547
25551
  return svgString;
25548
25552
  }
25549
- const resolvedPackageVersion = "0.5.418";
25553
+ const resolvedPackageVersion = "0.5.420";
25550
25554
  const PACKAGE_VERSION = resolvedPackageVersion;
25551
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.418";
25555
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.420";
25552
25556
  const roundParityValue = (value) => {
25553
25557
  if (typeof value !== "number") return value;
25554
25558
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26362,7 +26366,7 @@ class PixldocsRenderer {
26362
26366
  await this.waitForCanvasScene(container, cloned, i);
26363
26367
  }
26364
26368
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26365
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-oncH5akF.js");
26369
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-B-fqxnfz.js");
26366
26370
  const prepared = preparePagesForExport(
26367
26371
  cloned.pages,
26368
26372
  canvasWidth,
@@ -28682,7 +28686,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
28682
28686
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
28683
28687
  sanitizeSvgTreeForPdf(svgToDraw);
28684
28688
  try {
28685
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-oncH5akF.js");
28689
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-B-fqxnfz.js");
28686
28690
  try {
28687
28691
  await logTextMeasurementDiagnostic(svgToDraw);
28688
28692
  } catch {
@@ -29082,4 +29086,4 @@ export {
29082
29086
  buildTeaserBlurFlatKeys as y,
29083
29087
  collectFontDescriptorsFromConfig as z
29084
29088
  };
29085
- //# sourceMappingURL=index-DUYPnOdV.js.map
29089
+ //# sourceMappingURL=index-Bk-8sAnE.js.map