@pixldocs/canvas-renderer 0.5.319 → 0.5.321

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.
@@ -11204,19 +11204,9 @@ function applyWarpAwareSelectionBorders(selection) {
11204
11204
  const first = worldAngles[0] ?? 0;
11205
11205
  const ALL_SAME_TOL_DEG = 2;
11206
11206
  const allSame = Math.abs(first) > 0.5 && worldAngles.every((a) => angleDelta(a, first) <= ALL_SAME_TOL_DEG);
11207
- const anyRotated = worldAngles.some((a) => Math.abs(a) > 0.5);
11208
11207
  let targetAngle = null;
11209
11208
  if (allSame) {
11210
11209
  targetAngle = first;
11211
- } else if (anyRotated) {
11212
- const rad = (d) => d * Math.PI / 180;
11213
- const deg = (r) => r * 180 / Math.PI;
11214
- let sx = 0, sy = 0;
11215
- for (const a of worldAngles) {
11216
- sx += Math.cos(rad(a));
11217
- sy += Math.sin(rad(a));
11218
- }
11219
- targetAngle = norm(deg(Math.atan2(sy, sx)));
11220
11210
  }
11221
11211
  if (targetAngle != null) {
11222
11212
  const restoreKidsFromWorld = () => {
@@ -11243,7 +11233,6 @@ function applyWarpAwareSelectionBorders(selection) {
11243
11233
  selection.setCoords();
11244
11234
  selection.dirty = true;
11245
11235
  selection.__pixldocsAlignedAngle = targetAngle;
11246
- if (!allSame) selection.__pixldocsMixedRotation = true;
11247
11236
  }
11248
11237
  }
11249
11238
  }
@@ -13588,21 +13577,10 @@ const PageCanvas = react.forwardRef(
13588
13577
  fabricCanvas.on("selection:cleared", () => {
13589
13578
  });
13590
13579
  fabricCanvas.on("object:scaling", (e) => {
13591
- var _a2, _b2, _c, _d, _e, _f, _g;
13580
+ var _a2, _b2, _c, _d, _e, _f;
13592
13581
  if (!isActiveRef.current) return;
13593
13582
  const t = e.target;
13594
13583
  if (t) lastResizeScaleTargetRef.current = t;
13595
- try {
13596
- if (t instanceof fabric__namespace.ActiveSelection && t.__pixldocsMixedRotation) {
13597
- const corner2 = (_a2 = e.transform) == null ? void 0 : _a2.corner;
13598
- if (corner2 === "ml" || corner2 === "mr") {
13599
- t.scaleY = t.scaleX;
13600
- } else if (corner2 === "mt" || corner2 === "mb") {
13601
- t.scaleX = t.scaleY;
13602
- }
13603
- }
13604
- } catch {
13605
- }
13606
13584
  prepareGroupSelectionTransformStart(t);
13607
13585
  markTransforming(t);
13608
13586
  didTransformRef.current = true;
@@ -13766,24 +13744,36 @@ const PageCanvas = react.forwardRef(
13766
13744
  time: Math.round(performance.now()),
13767
13745
  corner,
13768
13746
  groupSelectionId: obj.__pixldocsGroupSelection,
13769
- currentTransformAction: (_b2 = fabricCanvas._currentTransform) == null ? void 0 : _b2.action,
13747
+ currentTransformAction: (_a2 = fabricCanvas._currentTransform) == null ? void 0 : _a2.action,
13770
13748
  selection: summarizeFabricObjectForResizeDebug(obj),
13771
13749
  textChildren: obj.getObjects().filter((child) => child instanceof fabric__namespace.Textbox).map((child) => summarizeFabricObjectForResizeDebug(child))
13772
13750
  };
13773
13751
  }
13774
13752
  }
13775
- const _asMixedRotForReflow = obj instanceof fabric__namespace.ActiveSelection && !!obj.__pixldocsMixedRotation;
13776
- if (obj instanceof fabric__namespace.ActiveSelection && !_asMixedRotForReflow && (corner === "ml" || corner === "mr" || corner === "mt" || corner === "mb")) {
13753
+ if (obj instanceof fabric__namespace.ActiveSelection && (corner === "ml" || corner === "mr" || corner === "mt" || corner === "mb")) {
13777
13754
  const isXSide = corner === "ml" || corner === "mr";
13778
13755
  const sAxis = isXSide ? Math.abs(obj.scaleX ?? 1) : Math.abs(obj.scaleY ?? 1);
13779
13756
  if (sAxis > 1e-3) {
13780
- if (isXSide && ((_c = groupShiftReflowSnapshotRef.current) == null ? void 0 : _c.selection) !== obj) {
13757
+ const hasRotatedChild = obj.getObjects().some(
13758
+ (c) => Math.abs((c.angle ?? 0) % 360) > 0.5
13759
+ );
13760
+ if (hasRotatedChild) {
13761
+ if (isXSide) {
13762
+ obj._set("scaleY", obj.scaleX ?? 1);
13763
+ } else {
13764
+ obj._set("scaleX", obj.scaleY ?? 1);
13765
+ }
13766
+ obj.setCoords();
13767
+ obj.dirty = true;
13768
+ return;
13769
+ }
13770
+ if (isXSide && ((_b2 = groupShiftReflowSnapshotRef.current) == null ? void 0 : _b2.selection) !== obj) {
13781
13771
  groupShiftReflowSnapshotRef.current = null;
13782
13772
  const logicalGroupId = obj.__pixldocsGroupSelection;
13783
13773
  if (logicalGroupId) {
13784
13774
  try {
13785
13775
  const state = useEditorStore.getState();
13786
- const pageChildren2 = ((_d = state.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _d.children) ?? [];
13776
+ const pageChildren2 = ((_c = state.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _c.children) ?? [];
13787
13777
  const groupNode = findNodeById(pageChildren2, logicalGroupId);
13788
13778
  if (groupNode && isGroup(groupNode) && !isStackLayoutMode(groupNode.layoutMode)) {
13789
13779
  const entries = obj.getObjects().map((c) => ({
@@ -13813,7 +13803,7 @@ const PageCanvas = react.forwardRef(
13813
13803
  const asRect0 = obj.getBoundingRect();
13814
13804
  let didReflowTextChild = false;
13815
13805
  for (const child of obj.getObjects()) {
13816
- if (child instanceof fabric__namespace.Group && (child.__cropGroup || ((_e = child._ct) == null ? void 0 : _e.isCropGroup))) {
13806
+ if (child instanceof fabric__namespace.Group && (child.__cropGroup || ((_d = child._ct) == null ? void 0 : _d.isCropGroup))) {
13817
13807
  const ct = child.__cropData;
13818
13808
  if (!ct) continue;
13819
13809
  if (isXSide) {
@@ -13918,7 +13908,7 @@ const PageCanvas = react.forwardRef(
13918
13908
  didReflowTextChild = true;
13919
13909
  }
13920
13910
  }
13921
- if (isXSide && ((_f = groupShiftReflowSnapshotRef.current) == null ? void 0 : _f.selection) === obj) {
13911
+ if (isXSide && ((_e = groupShiftReflowSnapshotRef.current) == null ? void 0 : _e.selection) === obj) {
13922
13912
  const snap = groupShiftReflowSnapshotRef.current;
13923
13913
  const anchorEntry = snap.children[0];
13924
13914
  const anchorTopLive = anchorEntry.obj.top ?? 0;
@@ -14074,7 +14064,7 @@ const PageCanvas = react.forwardRef(
14074
14064
  setGuides(gridGuidesForScale.length ? [...scaleGuides, ...gridGuidesForScale] : scaleGuides);
14075
14065
  if (drilledGroupIdRef.current) {
14076
14066
  try {
14077
- (_g = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _g.call(fabricCanvas);
14067
+ (_f = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _f.call(fabricCanvas);
14078
14068
  } catch {
14079
14069
  }
14080
14070
  }
@@ -24304,9 +24294,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24304
24294
  }
24305
24295
  return svgString;
24306
24296
  }
24307
- const resolvedPackageVersion = "0.5.319";
24297
+ const resolvedPackageVersion = "0.5.321";
24308
24298
  const PACKAGE_VERSION = resolvedPackageVersion;
24309
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.319";
24299
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.321";
24310
24300
  const roundParityValue = (value) => {
24311
24301
  if (typeof value !== "number") return value;
24312
24302
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25120,7 +25110,7 @@ class PixldocsRenderer {
25120
25110
  await this.waitForCanvasScene(container, cloned, i);
25121
25111
  }
25122
25112
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25123
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DPghmX4S.cjs"));
25113
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-B-On3i95.cjs"));
25124
25114
  const prepared = preparePagesForExport(
25125
25115
  cloned.pages,
25126
25116
  canvasWidth,
@@ -27440,7 +27430,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27440
27430
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27441
27431
  sanitizeSvgTreeForPdf(svgToDraw);
27442
27432
  try {
27443
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DPghmX4S.cjs"));
27433
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-B-On3i95.cjs"));
27444
27434
  try {
27445
27435
  await logTextMeasurementDiagnostic(svgToDraw);
27446
27436
  } catch {
@@ -27837,4 +27827,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
27837
27827
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
27838
27828
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
27839
27829
  exports.warmTemplateFromForm = warmTemplateFromForm;
27840
- //# sourceMappingURL=index-D0nU_guL.cjs.map
27830
+ //# sourceMappingURL=index-Dwa76-Km.cjs.map