@pixldocs/canvas-renderer 0.5.383 → 0.5.385

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.
@@ -15419,6 +15419,14 @@ const PageCanvas = react.forwardRef(
15419
15419
  finalHeight = 0;
15420
15420
  finalScaleX = 1;
15421
15421
  finalScaleY = 1;
15422
+ } else if (obj instanceof fabric__namespace.Textbox && isActiveSelection && (sourceElement == null ? void 0 : sourceElement.type) === "text" && (activeSelectionResizeHandle === "ml" || activeSelectionResizeHandle === "mr" || activeSelectionResizeHandle === "mt" || activeSelectionResizeHandle === "mb") && Math.min(
15423
+ ((sourceElement.angle ?? obj.angle ?? 0) % 360 + 360) % 360,
15424
+ 360 - ((sourceElement.angle ?? obj.angle ?? 0) % 360 + 360) % 360
15425
+ ) > 0.5) {
15426
+ finalWidth = Math.max(1, intrinsicWidth);
15427
+ finalHeight = Math.max(1, intrinsicHeight);
15428
+ finalScaleX = 1;
15429
+ finalScaleY = 1;
15422
15430
  } else if (obj instanceof fabric__namespace.Textbox && isActiveSelection && (Math.abs((decomposed.scaleX ?? 1) - 1) > 1e-3 || Math.abs((decomposed.scaleY ?? 1) - 1) > 1e-3)) {
15423
15431
  const sx = Math.abs(decomposed.scaleX || 1);
15424
15432
  const sy = Math.abs(decomposed.scaleY || 1);
@@ -15618,6 +15626,45 @@ const PageCanvas = react.forwardRef(
15618
15626
  if (sourceElement && sourceElement.opacity !== void 0) {
15619
15627
  elementUpdate.opacity = sourceElement.opacity;
15620
15628
  }
15629
+ const isActiveSelectionSideHandle = activeSelectionResizeHandle === "ml" || activeSelectionResizeHandle === "mr" || activeSelectionResizeHandle === "mt" || activeSelectionResizeHandle === "mb";
15630
+ if (isActiveSelection && isActiveSelectionSideHandle && obj instanceof fabric__namespace.Textbox && (sourceElement == null ? void 0 : sourceElement.type) === "text") {
15631
+ const cleanAngle = Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : obj.angle ?? decomposed.angle ?? 0;
15632
+ const normalizedTextAngle = (cleanAngle % 360 + 360) % 360;
15633
+ const isRotatedText = Math.min(normalizedTextAngle, 360 - normalizedTextAngle) > 0.5;
15634
+ if (isRotatedText) {
15635
+ try {
15636
+ const cleanW = Math.max(1, Number(obj.width ?? elementUpdate.width ?? finalWidth));
15637
+ const cleanH = Math.max(1, Number(elementUpdate.height ?? obj.height ?? finalHeight));
15638
+ const cx = decomposed.translateX ?? absoluteLeft + cleanW / 2;
15639
+ const cy = decomposed.translateY ?? absoluteTop + cleanH / 2;
15640
+ const theta = fabric__namespace.util.degreesToRadians(cleanAngle);
15641
+ const cos = Math.cos(theta);
15642
+ const sin = Math.sin(theta);
15643
+ const cleanAbsLeft = cx - (cos * cleanW / 2 - sin * cleanH / 2);
15644
+ const cleanAbsTop = cy - (sin * cleanW / 2 + cos * cleanH / 2);
15645
+ const cleanStorePos = absoluteToStorePosition(cleanAbsLeft, cleanAbsTop, objId, pageChildrenForSave);
15646
+ elementUpdate.left = cleanStorePos.left;
15647
+ elementUpdate.top = cleanStorePos.top;
15648
+ elementUpdate.width = cleanW;
15649
+ elementUpdate.height = cleanH;
15650
+ elementUpdate.angle = cleanAngle;
15651
+ elementUpdate.scaleX = 1;
15652
+ elementUpdate.scaleY = 1;
15653
+ elementUpdate.skewX = 0;
15654
+ elementUpdate.skewY = 0;
15655
+ elementUpdate.transformMatrix = fabric__namespace.util.composeMatrix({
15656
+ translateX: cx,
15657
+ translateY: cy,
15658
+ angle: cleanAngle,
15659
+ scaleX: 1,
15660
+ scaleY: 1,
15661
+ skewX: 0,
15662
+ skewY: 0
15663
+ });
15664
+ } catch {
15665
+ }
15666
+ }
15667
+ }
15621
15668
  if (debugGroupTextCornerResize && obj instanceof fabric__namespace.Textbox) {
15622
15669
  logGroupTextResizeDebug("store-update-text", {
15623
15670
  time: Math.round(performance.now()),
@@ -24834,9 +24881,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24834
24881
  }
24835
24882
  return svgString;
24836
24883
  }
24837
- const resolvedPackageVersion = "0.5.383";
24884
+ const resolvedPackageVersion = "0.5.385";
24838
24885
  const PACKAGE_VERSION = resolvedPackageVersion;
24839
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.383";
24886
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.385";
24840
24887
  const roundParityValue = (value) => {
24841
24888
  if (typeof value !== "number") return value;
24842
24889
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25650,7 +25697,7 @@ class PixldocsRenderer {
25650
25697
  await this.waitForCanvasScene(container, cloned, i);
25651
25698
  }
25652
25699
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25653
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DxRLDNdM.cjs"));
25700
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-PfyXnorA.cjs"));
25654
25701
  const prepared = preparePagesForExport(
25655
25702
  cloned.pages,
25656
25703
  canvasWidth,
@@ -27970,7 +28017,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27970
28017
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27971
28018
  sanitizeSvgTreeForPdf(svgToDraw);
27972
28019
  try {
27973
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DxRLDNdM.cjs"));
28020
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-PfyXnorA.cjs"));
27974
28021
  try {
27975
28022
  await logTextMeasurementDiagnostic(svgToDraw);
27976
28023
  } catch {
@@ -28367,4 +28414,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28367
28414
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28368
28415
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28369
28416
  exports.warmTemplateFromForm = warmTemplateFromForm;
28370
- //# sourceMappingURL=index-BOr3yt00.cjs.map
28417
+ //# sourceMappingURL=index-BoNuF4Yx.cjs.map