@pixldocs/canvas-renderer 0.5.447 → 0.5.449

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.
@@ -11664,25 +11664,28 @@ const bakeTextboxScaleIntoTypography = (obj, sourceElement) => {
11664
11664
  return updates;
11665
11665
  };
11666
11666
  const applyTransformPreservingFlip = (obj, matrix) => {
11667
- fabric__namespace.util.applyTransformToObject(obj, matrix);
11668
- let sx = obj.scaleX ?? 1;
11669
- let sy = obj.scaleY ?? 1;
11670
- let flipX = false;
11671
- let flipY = false;
11667
+ const intendedFlipX = obj.flipX ?? false;
11668
+ const intendedFlipY = obj.flipY ?? false;
11669
+ const cleanMatrix = toggleLogicalFlipInMatrix(matrix, intendedFlipX, intendedFlipY);
11670
+ fabric__namespace.util.applyTransformToObject(obj, cleanMatrix);
11671
+ let sx = Number(obj.scaleX ?? 1) || 1;
11672
+ let sy = Number(obj.scaleY ?? 1) || 1;
11673
+ let flipX = intendedFlipX;
11674
+ let flipY = intendedFlipY;
11672
11675
  if (sx < 0) {
11673
- flipX = true;
11676
+ flipX = !flipX;
11674
11677
  sx = -sx;
11675
11678
  }
11676
11679
  if (sy < 0) {
11677
- flipY = true;
11680
+ flipY = !flipY;
11678
11681
  sy = -sy;
11679
11682
  }
11680
11683
  obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11681
11684
  };
11682
- const restorePersistedFlipState = (obj, flipX, flipY, angle) => {
11685
+ const restorePersistedFlipState = (obj, flipX, flipY) => {
11683
11686
  const sx = Math.abs(Number(obj.scaleX ?? 1)) || 1;
11684
11687
  const sy = Math.abs(Number(obj.scaleY ?? 1)) || 1;
11685
- obj.set({ scaleX: sx, scaleY: sy, skewX: 0, skewY: 0, flipX, flipY, ...Number.isFinite(angle) ? { angle } : {} });
11688
+ obj.set({ scaleX: sx, scaleY: sy, flipX, flipY });
11686
11689
  obj.setCoords();
11687
11690
  obj.dirty = true;
11688
11691
  };
@@ -11793,16 +11796,11 @@ function applyWarpAwareSelectionBorders(selection) {
11793
11796
  selection.calcTransformMatrix()
11794
11797
  );
11795
11798
  kids.forEach((k, index) => {
11796
- var _a3;
11797
11799
  const beforeRestore = summarizeRotDriftObject(k);
11798
11800
  const localMatrix = fabric__namespace.util.multiplyTransformMatrices(
11799
11801
  invSelection,
11800
11802
  worldMatrices[index]
11801
11803
  );
11802
- const isImageLikeKid = k instanceof fabric__namespace.FabricImage || k instanceof fabric__namespace.Group && (k.__cropGroup || ((_a3 = k._ct) == null ? void 0 : _a3.isCropGroup));
11803
- const persistedKidFlipX = !!k.flipX;
11804
- const persistedKidFlipY = !!k.flipY;
11805
- const expectedCleanKidAngle = isImageLikeKid && (persistedKidFlipX || persistedKidFlipY) ? fabric__namespace.util.qrDecompose(toggleLogicalFlipInMatrix(localMatrix, persistedKidFlipX, persistedKidFlipY)).angle ?? 0 : void 0;
11806
11804
  const savedLayout = k.layoutManager;
11807
11805
  try {
11808
11806
  if (savedLayout) k.layoutManager = void 0;
@@ -11812,9 +11810,6 @@ function applyWarpAwareSelectionBorders(selection) {
11812
11810
  );
11813
11811
  const expectedCenter = new fabric__namespace.Point(decomposed.translateX, decomposed.translateY);
11814
11812
  k.setPositionByOrigin(expectedCenter, "center", "center");
11815
- if (isImageLikeKid && (persistedKidFlipX || persistedKidFlipY)) {
11816
- restorePersistedFlipState(k, persistedKidFlipX, persistedKidFlipY, expectedCleanKidAngle);
11817
- }
11818
11813
  } finally {
11819
11814
  if (savedLayout) k.layoutManager = savedLayout;
11820
11815
  }
@@ -14655,7 +14650,7 @@ const PageCanvas = react.forwardRef(
14655
14650
  fabricCanvas.on("selection:cleared", () => {
14656
14651
  });
14657
14652
  fabricCanvas.on("object:scaling", (e) => {
14658
- var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
14653
+ var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;
14659
14654
  if (!isActiveRef.current) return;
14660
14655
  const t = e.target;
14661
14656
  if (t) lastResizeScaleTargetRef.current = t;
@@ -14949,46 +14944,120 @@ const PageCanvas = react.forwardRef(
14949
14944
  if (child.__asLiveGestureKey !== liveGestureKey) {
14950
14945
  child.__asLiveGestureKey = liveGestureKey;
14951
14946
  child.__asLiveOrigAngle = Number.isFinite(child.angle) ? child.angle ?? 0 : 0;
14952
- child.__asLiveOrigFlipX = !!child.flipX;
14953
- child.__asLiveOrigFlipY = !!child.flipY;
14954
14947
  }
14955
- const liveAsSx = isXSide ? sAxis : 1;
14956
- const liveAsSy = isXSide ? 1 : sAxis;
14957
- if (child instanceof fabric__namespace.Group && (child.__cropGroup || ((_m = child._ct) == null ? void 0 : _m.isCropGroup)) || child instanceof fabric__namespace.FabricImage && !child.__cropGroup && !child.smartElementType) {
14958
- const childAngleDeg2 = child.__asLiveOrigAngle ?? (child.angle ?? 0);
14959
- const theta2 = fabric__namespace.util.degreesToRadians(childAngleDeg2);
14960
- const cosT2 = Math.cos(theta2);
14961
- const sinT2 = Math.sin(theta2);
14962
- const dX = isXSide ? Math.max(1e-3, liveAsSx * cosT2 * cosT2 + sinT2 * sinT2) : 1;
14963
- const dY = isXSide ? 1 : Math.max(1e-3, liveAsSy * cosT2 * cosT2 + sinT2 * sinT2);
14964
- if (child.__asLiveOrigScaleX == null) child.__asLiveOrigScaleX = Math.abs(Number(child.scaleX ?? 1)) || 1;
14965
- if (child.__asLiveOrigScaleY == null) child.__asLiveOrigScaleY = Math.abs(Number(child.scaleY ?? 1)) || 1;
14966
- const origScaleX = child.__asLiveOrigScaleX;
14967
- const origScaleY = child.__asLiveOrigScaleY;
14968
- const baseW = Math.max(1, Number(((_n = child.__cropData) == null ? void 0 : _n.frameW) ?? child.width ?? 1));
14969
- const baseH = Math.max(1, Number(((_o = child.__cropData) == null ? void 0 : _o.frameH) ?? child.height ?? 1));
14970
- const liveW = baseW * origScaleX * dX;
14971
- const liveH = baseH * origScaleY * dY;
14948
+ if (child instanceof fabric__namespace.Group && (child.__cropGroup || ((_m = child._ct) == null ? void 0 : _m.isCropGroup))) {
14949
+ const ct = child.__cropData;
14950
+ if (!ct) continue;
14951
+ if (child.__asLiveOrigAngle == null) {
14952
+ child.__asLiveOrigAngle = child.angle ?? 0;
14953
+ }
14954
+ const childAngleDegC = child.__asLiveOrigAngle;
14955
+ const asSxC = isXSide ? sAxis : 1;
14956
+ const asSyC = isXSide ? 1 : sAxis;
14957
+ const thetaC = fabric__namespace.util.degreesToRadians(childAngleDegC);
14958
+ const cosTC = Math.cos(thetaC);
14959
+ const sinTC = Math.sin(thetaC);
14960
+ const sLocalC = isXSide ? asSxC * cosTC * cosTC + sinTC * sinTC : asSyC * cosTC * cosTC + sinTC * sinTC;
14961
+ if (isXSide) {
14962
+ if (child.__asLiveOrigW == null) {
14963
+ const baseW = child.width ?? ct.frameW ?? 0;
14964
+ child.__asLiveOrigW = baseW * (child.scaleX ?? 1);
14965
+ }
14966
+ const origW = child.__asLiveOrigW;
14967
+ const newW = Math.max(20, origW * sLocalC);
14968
+ if (Math.abs((child.width ?? 0) - newW) > 0.5) {
14969
+ ct.frameW = newW;
14970
+ child._set("width", newW);
14971
+ }
14972
+ } else {
14973
+ if (child.__asLiveOrigH == null) {
14974
+ const baseH = child.height ?? ct.frameH ?? 0;
14975
+ child.__asLiveOrigH = baseH * (child.scaleY ?? 1);
14976
+ }
14977
+ const origH = child.__asLiveOrigH;
14978
+ const newH = Math.max(20, origH * sLocalC);
14979
+ if (Math.abs((child.height ?? 0) - newH) > 0.5) {
14980
+ ct.frameH = newH;
14981
+ child._set("height", newH);
14982
+ }
14983
+ }
14972
14984
  try {
14973
- const inv = [1 / liveAsSx, 0, 0, 1 / liveAsSy, 0, 0];
14974
- const Rtheta = fabric__namespace.util.composeMatrix({ angle: childAngleDeg2, scaleX: 1, scaleY: 1, translateX: 0, translateY: 0 });
14975
- const Dscale = fabric__namespace.util.composeMatrix({ angle: 0, scaleX: origScaleX * dX, scaleY: origScaleY * dY, translateX: 0, translateY: 0 });
14976
- const M = fabric__namespace.util.multiplyTransformMatrices(
14977
- fabric__namespace.util.multiplyTransformMatrices(inv, Rtheta),
14978
- Dscale
14979
- );
14980
- const dec = fabric__namespace.util.qrDecompose(M);
14981
- child._set("angle", dec.angle);
14982
- child._set("scaleX", dec.scaleX);
14983
- child._set("scaleY", dec.scaleY);
14984
- child._set("skewX", dec.skewX);
14985
- child._set("skewY", dec.skewY);
14986
- child._set("flipX", !!(child.__asLiveOrigFlipX ?? child.flipX));
14987
- child._set("flipY", !!(child.__asLiveOrigFlipY ?? child.flipY));
14985
+ const invC = [1 / asSxC, 0, 0, 1 / asSyC, 0, 0];
14986
+ const RthetaC = fabric__namespace.util.composeMatrix({
14987
+ angle: childAngleDegC,
14988
+ scaleX: 1,
14989
+ scaleY: 1,
14990
+ translateX: 0,
14991
+ translateY: 0
14992
+ });
14993
+ const MC = fabric__namespace.util.multiplyTransformMatrices(invC, RthetaC);
14994
+ const decC = fabric__namespace.util.qrDecompose(MC);
14995
+ child._set("angle", decC.angle);
14996
+ child._set("scaleX", decC.scaleX);
14997
+ child._set("scaleY", decC.scaleY);
14998
+ child._set("skewX", decC.skewX);
14999
+ child._set("skewY", decC.skewY);
15000
+ } catch {
15001
+ }
15002
+ try {
15003
+ updateCoverLayout(child);
15004
+ } catch {
15005
+ }
15006
+ child.setCoords();
15007
+ captureAsLiveWorldSnapshot(child, ct.frameW ?? child.width ?? 0, ct.frameH ?? child.height ?? 0);
15008
+ child.dirty = true;
15009
+ continue;
15010
+ }
15011
+ if (child instanceof fabric__namespace.FabricImage && !child.__cropGroup && !child.smartElementType) {
15012
+ if (child.__asLiveOrigAngle == null) {
15013
+ child.__asLiveOrigAngle = child.angle ?? 0;
15014
+ }
15015
+ const childAngleDegI = child.__asLiveOrigAngle;
15016
+ const asSxI = isXSide ? sAxis : 1;
15017
+ const asSyI = isXSide ? 1 : sAxis;
15018
+ const thetaI = fabric__namespace.util.degreesToRadians(childAngleDegI);
15019
+ const cosTI = Math.cos(thetaI);
15020
+ const sinTI = Math.sin(thetaI);
15021
+ const sLocalI = isXSide ? asSxI * cosTI * cosTI + sinTI * sinTI : asSyI * cosTI * cosTI + sinTI * sinTI;
15022
+ if (isXSide) {
15023
+ if (child.__asLiveOrigW == null) {
15024
+ child.__asLiveOrigW = (child.width ?? 0) * (child.scaleX ?? 1);
15025
+ }
15026
+ const origW = child.__asLiveOrigW;
15027
+ const newW = Math.max(1, origW * sLocalI);
15028
+ if (Math.abs((child.width ?? 0) - newW) > 0.5) {
15029
+ child._set("width", newW);
15030
+ }
15031
+ } else {
15032
+ if (child.__asLiveOrigH == null) {
15033
+ child.__asLiveOrigH = (child.height ?? 0) * (child.scaleY ?? 1);
15034
+ }
15035
+ const origH = child.__asLiveOrigH;
15036
+ const newH = Math.max(1, origH * sLocalI);
15037
+ if (Math.abs((child.height ?? 0) - newH) > 0.5) {
15038
+ child._set("height", newH);
15039
+ }
15040
+ }
15041
+ try {
15042
+ const invI = [1 / asSxI, 0, 0, 1 / asSyI, 0, 0];
15043
+ const RthetaI = fabric__namespace.util.composeMatrix({
15044
+ angle: childAngleDegI,
15045
+ scaleX: 1,
15046
+ scaleY: 1,
15047
+ translateX: 0,
15048
+ translateY: 0
15049
+ });
15050
+ const MI = fabric__namespace.util.multiplyTransformMatrices(invI, RthetaI);
15051
+ const decI = fabric__namespace.util.qrDecompose(MI);
15052
+ child._set("angle", decI.angle);
15053
+ child._set("scaleX", decI.scaleX);
15054
+ child._set("scaleY", decI.scaleY);
15055
+ child._set("skewX", decI.skewX);
15056
+ child._set("skewY", decI.skewY);
14988
15057
  } catch {
14989
15058
  }
14990
- captureAsLiveWorldSnapshot(child, liveW, liveH);
14991
15059
  child.setCoords();
15060
+ captureAsLiveWorldSnapshot(child, child.width ?? 0, child.height ?? 0);
14992
15061
  child.dirty = true;
14993
15062
  continue;
14994
15063
  }
@@ -15045,7 +15114,7 @@ const PageCanvas = react.forwardRef(
15045
15114
  child.dirty = true;
15046
15115
  didReflowTextChild = true;
15047
15116
  }
15048
- if (isXSide && ((_p = groupShiftReflowSnapshotRef.current) == null ? void 0 : _p.selection) === obj) {
15117
+ if (isXSide && ((_n = groupShiftReflowSnapshotRef.current) == null ? void 0 : _n.selection) === obj) {
15049
15118
  const snap = groupShiftReflowSnapshotRef.current;
15050
15119
  const anchorEntry = snap.children[0];
15051
15120
  const anchorTopLive = anchorEntry.obj.top ?? 0;
@@ -15207,7 +15276,7 @@ const PageCanvas = react.forwardRef(
15207
15276
  setGuides(gridGuidesForScale.length ? [...scaleGuides, ...gridGuidesForScale] : scaleGuides);
15208
15277
  if (drilledGroupIdRef.current) {
15209
15278
  try {
15210
- (_q = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _q.call(fabricCanvas);
15279
+ (_o = fabricCanvas.__updateDrilledGroupOutline) == null ? void 0 : _o.call(fabricCanvas);
15211
15280
  } catch {
15212
15281
  }
15213
15282
  }
@@ -15434,8 +15503,6 @@ const PageCanvas = react.forwardRef(
15434
15503
  for (const child of t.getObjects()) {
15435
15504
  delete child.__asLiveOrigW;
15436
15505
  delete child.__asLiveOrigH;
15437
- delete child.__asLiveOrigScaleX;
15438
- delete child.__asLiveOrigScaleY;
15439
15506
  delete child.__asLiveRotSnap;
15440
15507
  delete child.__asLiveGestureKey;
15441
15508
  }
@@ -16138,12 +16205,10 @@ const PageCanvas = react.forwardRef(
16138
16205
  const ownSy = Math.abs(obj.scaleY ?? 1);
16139
16206
  const bakedW = Math.max(1, intrinsicWidth * ownSx * (imgIsXSide ? sLocalI : 1));
16140
16207
  const bakedH = Math.max(1, intrinsicHeight * ownSy * (imgIsXSide ? 1 : sLocalI));
16141
- const cleanW = Math.max(1, Number(obj.__asLiveFinalW ?? bakedW));
16142
- const cleanH = Math.max(1, Number(obj.__asLiveFinalH ?? bakedH));
16143
16208
  try {
16144
16209
  obj.set({
16145
- width: cleanW,
16146
- height: cleanH,
16210
+ width: bakedW,
16211
+ height: bakedH,
16147
16212
  scaleX: 1,
16148
16213
  scaleY: 1,
16149
16214
  skewX: 0,
@@ -16162,8 +16227,8 @@ const PageCanvas = react.forwardRef(
16162
16227
  obj.setCoords();
16163
16228
  } catch {
16164
16229
  }
16165
- finalWidth = cleanW;
16166
- finalHeight = cleanH;
16230
+ finalWidth = Math.max(1, Number(obj.__asLiveFinalW ?? bakedW));
16231
+ finalHeight = Math.max(1, Number(obj.__asLiveFinalH ?? bakedH));
16167
16232
  finalScaleX = 1;
16168
16233
  finalScaleY = 1;
16169
16234
  const worldCx = Number.isFinite(obj.__asLiveWorldCenterX) ? obj.__asLiveWorldCenterX : decomposed.translateX ?? 0;
@@ -16439,9 +16504,8 @@ const PageCanvas = react.forwardRef(
16439
16504
  const objectFlipY = obj.flipY ?? false;
16440
16505
  const persistedFlipX = (sourceElement == null ? void 0 : sourceElement.flipX) ?? objectFlipX;
16441
16506
  const persistedFlipY = (sourceElement == null ? void 0 : sourceElement.flipY) ?? objectFlipY;
16442
- const persistedAngle = sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0;
16443
16507
  const isActiveSelectionResizeGesture = activeSelectionResizeHandle === "ml" || activeSelectionResizeHandle === "mr" || activeSelectionResizeHandle === "mt" || activeSelectionResizeHandle === "mb" || activeSelectionResizeHandle === "tl" || activeSelectionResizeHandle === "tr" || activeSelectionResizeHandle === "bl" || activeSelectionResizeHandle === "br";
16444
- const expectedCleanAngle = isActiveSelection && isActiveSelectionResizeGesture ? sourceElement ? Number.isFinite(sourceElement.angle) ? sourceElement.angle ?? 0 : 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0 : void 0;
16508
+ const expectedCleanAngle = isActiveSelection && isActiveSelectionResizeGesture ? Number.isFinite(sourceElement == null ? void 0 : sourceElement.angle) ? (sourceElement == null ? void 0 : sourceElement.angle) ?? 0 : Number.isFinite(obj.angle) ? obj.angle ?? 0 : void 0 : void 0;
16445
16509
  const normalizedFinalAbsoluteMatrix = normalizeMatrixForPersistedFlip(
16446
16510
  toggleLogicalFlipInMatrix(
16447
16511
  finalAbsoluteMatrix,
@@ -16455,7 +16519,7 @@ const PageCanvas = react.forwardRef(
16455
16519
  const cleanTransformMatrix = toggleLogicalFlipInMatrix(normalizedFinalAbsoluteMatrix, persistedFlipX, persistedFlipY);
16456
16520
  const persistedDecomposed = fabric__namespace.util.qrDecompose(cleanTransformMatrix);
16457
16521
  if (isActiveSelection && (obj instanceof fabric__namespace.FabricImage || obj instanceof fabric__namespace.Group && obj.__cropGroup)) {
16458
- activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY, angle: persistedAngle });
16522
+ activeSelectionFlipRestores.push({ obj, flipX: persistedFlipX, flipY: persistedFlipY });
16459
16523
  }
16460
16524
  const elementUpdate = {
16461
16525
  left: storePos.left,
@@ -16585,12 +16649,6 @@ const PageCanvas = react.forwardRef(
16585
16649
  objectBeforeStoreWrite: summarizeFabricObjectForResizeDebug(obj)
16586
16650
  });
16587
16651
  }
16588
- if (isActiveSelection && (obj instanceof fabric__namespace.FabricImage || obj instanceof fabric__namespace.Group && obj.__cropGroup)) {
16589
- const restore = activeSelectionFlipRestores.find((entry) => entry.obj === obj);
16590
- if (restore) {
16591
- restore.angle = Number.isFinite(elementUpdate.angle) ? elementUpdate.angle : persistedAngle;
16592
- }
16593
- }
16594
16652
  if (isActiveSelection) {
16595
16653
  logRotGroupImageDrift("store-update-child", {
16596
16654
  time: Math.round(performance.now()),
@@ -16687,14 +16745,14 @@ const PageCanvas = react.forwardRef(
16687
16745
  skipActiveSelectionBakeOnClearRef.current = true;
16688
16746
  try {
16689
16747
  for (const restore of activeSelectionFlipRestores) {
16690
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16748
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16691
16749
  }
16692
16750
  fabricCanvas.discardActiveObject();
16693
16751
  } finally {
16694
16752
  skipActiveSelectionBakeOnClearRef.current = false;
16695
16753
  }
16696
16754
  for (const restore of activeSelectionFlipRestores) {
16697
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16755
+ restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY);
16698
16756
  }
16699
16757
  for (const bake of pendingCropGroupFrameBakes) {
16700
16758
  const ct = bake.obj.__cropData;
@@ -16715,9 +16773,6 @@ const PageCanvas = react.forwardRef(
16715
16773
  updateCoverLayout(bake.obj);
16716
16774
  bake.obj.setCoords();
16717
16775
  }
16718
- for (const restore of activeSelectionFlipRestores) {
16719
- restorePersistedFlipState(restore.obj, restore.flipX, restore.flipY, restore.angle);
16720
- }
16721
16776
  if (membersToReselect.length > 1) {
16722
16777
  const newSel = new fabric__namespace.ActiveSelection(membersToReselect, { canvas: fabricCanvas });
16723
16778
  if (wasGroupSel) restoreGroupSelectionVisualState(newSel, wasGroupSel);
@@ -16775,10 +16830,6 @@ const PageCanvas = react.forwardRef(
16775
16830
  if (t instanceof fabric__namespace.ActiveSelection) {
16776
16831
  for (const child of t.getObjects()) {
16777
16832
  delete child.__asLiveOrigAngle;
16778
- delete child.__asLiveOrigFlipX;
16779
- delete child.__asLiveOrigFlipY;
16780
- delete child.__asLiveOrigScaleX;
16781
- delete child.__asLiveOrigScaleY;
16782
16833
  delete child.__asLiveGestureKey;
16783
16834
  delete child.__asLiveWorldAngle;
16784
16835
  delete child.__asLiveWorldCenterX;
@@ -25889,9 +25940,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
25889
25940
  }
25890
25941
  return svgString;
25891
25942
  }
25892
- const resolvedPackageVersion = "0.5.447";
25943
+ const resolvedPackageVersion = "0.5.449";
25893
25944
  const PACKAGE_VERSION = resolvedPackageVersion;
25894
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.447";
25945
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.449";
25895
25946
  const roundParityValue = (value) => {
25896
25947
  if (typeof value !== "number") return value;
25897
25948
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -26705,7 +26756,7 @@ class PixldocsRenderer {
26705
26756
  await this.waitForCanvasScene(container, cloned, i);
26706
26757
  }
26707
26758
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
26708
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-BVQkDFXD.cjs"));
26759
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DDTYu7h6.cjs"));
26709
26760
  const prepared = preparePagesForExport(
26710
26761
  cloned.pages,
26711
26762
  canvasWidth,
@@ -29025,7 +29076,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29025
29076
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29026
29077
  sanitizeSvgTreeForPdf(svgToDraw);
29027
29078
  try {
29028
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-BVQkDFXD.cjs"));
29079
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DDTYu7h6.cjs"));
29029
29080
  try {
29030
29081
  await logTextMeasurementDiagnostic(svgToDraw);
29031
29082
  } catch {
@@ -29422,4 +29473,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
29422
29473
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
29423
29474
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
29424
29475
  exports.warmTemplateFromForm = warmTemplateFromForm;
29425
- //# sourceMappingURL=index-D7JnQkpf.cjs.map
29476
+ //# sourceMappingURL=index-DJhcPNx7.cjs.map