@pixldocs/canvas-renderer 0.5.466 → 0.5.468

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.
@@ -5261,53 +5261,6 @@ function updateCoverLayout(g) {
5261
5261
  g.canvas.requestRenderAll();
5262
5262
  }
5263
5263
  }
5264
- function shrinkContainGroupToImageBounds(g) {
5265
- const ct = g.__cropData;
5266
- if (!ct || ct.fit !== "contain") return;
5267
- const img = ct._img;
5268
- if (!img) return;
5269
- const clip = g.clipPath;
5270
- if (clip && (isSvgMaskClipPath(clip) || isLuminanceMaskClipPath(clip) || clip.__svgMask || clip.__edgeFadeMask)) return;
5271
- const iw = img.width || 0;
5272
- const ih = img.height || 0;
5273
- const sx = Math.abs(img.scaleX || 1);
5274
- const sy = Math.abs(img.scaleY || 1);
5275
- const dispW = iw * sx;
5276
- const dispH = ih * sy;
5277
- if (dispW <= 0 || dispH <= 0) return;
5278
- const frameW = Number(ct.frameW) || g.width || dispW;
5279
- const frameH = Number(ct.frameH) || g.height || dispH;
5280
- const alignH = ct.alignH ?? "center";
5281
- const alignV = ct.alignV ?? "middle";
5282
- const slackX = frameW - dispW;
5283
- const slackY = frameH - dispH;
5284
- const offsetX = alignH === "left" ? -slackX / 2 : alignH === "right" ? slackX / 2 : 0;
5285
- const offsetY = alignV === "top" ? -slackY / 2 : alignV === "bottom" ? slackY / 2 : 0;
5286
- const angleRad = fabric__namespace.util.degreesToRadians(g.angle || 0);
5287
- const cos = Math.cos(angleRad);
5288
- const sin = Math.sin(angleRad);
5289
- const worldDx = offsetX * cos - offsetY * sin;
5290
- const worldDy = offsetX * sin + offsetY * cos;
5291
- g.set({
5292
- left: (g.left || 0) + worldDx,
5293
- top: (g.top || 0) + worldDy,
5294
- width: dispW,
5295
- height: dispH
5296
- });
5297
- img.set({ left: 0, top: 0 });
5298
- if (clip) {
5299
- if (clip instanceof fabric__namespace.Rect) {
5300
- const rxRatio = Number(ct.rx) || 0;
5301
- const rxPx = rxRatio > 0.5 ? Math.min(rxRatio, dispW / 2, dispH / 2) : Math.max(0, Math.min(rxRatio * Math.min(dispW, dispH), dispW / 2, dispH / 2));
5302
- clip.set({ width: dispW, height: dispH, rx: rxPx, ry: rxPx });
5303
- } else if (clip instanceof fabric__namespace.Ellipse) {
5304
- clip.set({ rx: dispW / 2, ry: dispH / 2 });
5305
- }
5306
- clip.dirty = true;
5307
- }
5308
- g.dirty = true;
5309
- g.setCoords();
5310
- }
5311
5264
  function getDomEvent(eventData) {
5312
5265
  return (eventData == null ? void 0 : eventData.e) ?? eventData ?? null;
5313
5266
  }
@@ -12346,18 +12299,21 @@ const PageCanvas = react.forwardRef(
12346
12299
  if (id && id !== "__background__") {
12347
12300
  const width = (obj.width ?? 0) * (obj.scaleX ?? 1);
12348
12301
  const height = (obj.height ?? 0) * (obj.scaleY ?? 1);
12349
- let left = obj.left ?? 0;
12350
- let top = obj.top ?? 0;
12351
- if (obj instanceof fabric__namespace.Group && obj.__cropGroup) {
12352
- left = left - width / 2;
12353
- top = top - height / 2;
12354
- } else if (obj.originX === "center" || obj.originY === "center") {
12355
- const offsetX = obj.originX === "center" ? width / 2 : 0;
12356
- const offsetY = obj.originY === "center" ? height / 2 : 0;
12357
- left = left - offsetX;
12358
- top = top - offsetY;
12302
+ const angle = obj.angle ?? 0;
12303
+ let left;
12304
+ let top;
12305
+ const centerFn = obj.getCenterPoint;
12306
+ if (typeof centerFn === "function") {
12307
+ const c = centerFn.call(obj);
12308
+ left = c.x - width / 2;
12309
+ top = c.y - height / 2;
12310
+ } else {
12311
+ left = obj.left ?? 0;
12312
+ top = obj.top ?? 0;
12313
+ if (obj.originX === "center") left -= width / 2;
12314
+ if (obj.originY === "center") top -= height / 2;
12359
12315
  }
12360
- result.set(id, { left, top, width, height });
12316
+ result.set(id, { left, top, width, height, angle });
12361
12317
  }
12362
12318
  });
12363
12319
  return result;
@@ -17699,7 +17655,6 @@ const PageCanvas = react.forwardRef(
17699
17655
  ct.fit = elFit;
17700
17656
  }
17701
17657
  updateCoverLayout(existingObj);
17702
- shrinkContainGroupToImageBounds(existingObj);
17703
17658
  applyEdgeFadeFrameClipPath(existingObj, element, ct.frameW, ct.frameH, ct.shape || "rect", ct.rx || 0);
17704
17659
  if (allowEditing) {
17705
17660
  installImageResizeControlsWithSnap(existingObj);
@@ -17807,7 +17762,6 @@ const PageCanvas = react.forwardRef(
17807
17762
  ctSync.alignV = element.imageAlignV ?? "middle";
17808
17763
  ctSync.containScale = Math.max(1, Math.min(3, Number(element.containScale ?? 1)));
17809
17764
  updateCoverLayout(existingObj);
17810
- shrinkContainGroupToImageBounds(existingObj);
17811
17765
  existingObj.dirty = true;
17812
17766
  }
17813
17767
  }
@@ -19774,7 +19728,6 @@ const PageCanvas = react.forwardRef(
19774
19728
  updateCoverLayout(cropGroup);
19775
19729
  }
19776
19730
  applyEdgeFadeFrameClipPath(cropGroup, element, frameW, frameH, shape, rxRatio);
19777
- shrinkContainGroupToImageBounds(cropGroup);
19778
19731
  setObjectData(cropGroup, element.id);
19779
19732
  cropGroup.__imageElement = cropImg;
19780
19733
  cropGroup.__imageSrc = imageUrl;
@@ -20521,7 +20474,9 @@ function PreviewCanvas({
20521
20474
  border: isHovered ? "2px solid rgb(59 130 246)" : "none",
20522
20475
  backgroundColor: isHovered ? "rgba(59, 130, 246, 0.1)" : "transparent",
20523
20476
  borderRadius: 4,
20524
- pointerEvents: "auto"
20477
+ pointerEvents: "auto",
20478
+ transform: (bounds == null ? void 0 : bounds.angle) ? `rotate(${bounds.angle}deg)` : void 0,
20479
+ transformOrigin: "center center"
20525
20480
  },
20526
20481
  onMouseEnter: () => setHoveredFieldId(element.id),
20527
20482
  onMouseLeave: () => setHoveredFieldId(null),
@@ -26358,9 +26313,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
26358
26313
  }
26359
26314
  return svgString;
26360
26315
  }
26361
- const resolvedPackageVersion = "0.5.466";
26316
+ const resolvedPackageVersion = "0.5.468";
26362
26317
  const PACKAGE_VERSION = resolvedPackageVersion;
26363
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.466";
26318
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.468";
26364
26319
  const roundParityValue = (value) => {
26365
26320
  if (typeof value !== "number") return value;
26366
26321
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -27174,7 +27129,7 @@ class PixldocsRenderer {
27174
27129
  await this.waitForCanvasScene(container, cloned, i);
27175
27130
  }
27176
27131
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
27177
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DldoIDUl.cjs"));
27132
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-CsY4HpZu.cjs"));
27178
27133
  const prepared = preparePagesForExport(
27179
27134
  cloned.pages,
27180
27135
  canvasWidth,
@@ -29494,7 +29449,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29494
29449
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29495
29450
  sanitizeSvgTreeForPdf(svgToDraw);
29496
29451
  try {
29497
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DldoIDUl.cjs"));
29452
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-CsY4HpZu.cjs"));
29498
29453
  try {
29499
29454
  await logTextMeasurementDiagnostic(svgToDraw);
29500
29455
  } catch {
@@ -29808,4 +29763,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
29808
29763
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
29809
29764
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
29810
29765
  exports.warmTemplateFromForm = warmTemplateFromForm;
29811
- //# sourceMappingURL=index-CJitUO8J.cjs.map
29766
+ //# sourceMappingURL=index-DoJk8IkH.cjs.map