@pixldocs/canvas-renderer 0.5.336 → 0.5.338

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.
@@ -13583,6 +13583,7 @@ const PageCanvas = react.forwardRef(
13583
13583
  });
13584
13584
  const markSimpleTransform = (e) => {
13585
13585
  if (!isActiveRef.current) return;
13586
+ prepareGroupSelectionTransformStart(e.target);
13586
13587
  markTransforming(e.target);
13587
13588
  };
13588
13589
  const getObjectFrameBoundsInSelection = (selection, obj, frameWidth, frameHeight) => {
@@ -14451,7 +14452,7 @@ const PageCanvas = react.forwardRef(
14451
14452
  });
14452
14453
  let cropGroupSaveTimer = null;
14453
14454
  fabricCanvas.on("object:modified", (e) => {
14454
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
14455
+ var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j;
14455
14456
  try {
14456
14457
  dragStarted = false;
14457
14458
  setGuides([]);
@@ -14459,6 +14460,33 @@ const PageCanvas = react.forwardRef(
14459
14460
  objectResizeActiveSnapRef.current = null;
14460
14461
  groupResizeActiveSnapRef.current = null;
14461
14462
  onDragEnd == null ? void 0 : onDragEnd();
14463
+ try {
14464
+ const mt = e.target;
14465
+ const children = mt instanceof fabric__namespace.Group || mt instanceof fabric__namespace.ActiveSelection ? mt.getObjects() : [];
14466
+ logGroupImageResizeDebug("modified-entry", {
14467
+ time: Math.round(performance.now()),
14468
+ didTransform: didTransformRef.current,
14469
+ targetType: mt == null ? void 0 : mt.type,
14470
+ targetCtor: (_a2 = mt == null ? void 0 : mt.constructor) == null ? void 0 : _a2.name,
14471
+ isActiveSelection: mt instanceof fabric__namespace.ActiveSelection,
14472
+ isGroup: mt instanceof fabric__namespace.Group,
14473
+ angle: mt == null ? void 0 : mt.angle,
14474
+ childCount: children.length,
14475
+ childTypes: children.map((c) => c == null ? void 0 : c.type),
14476
+ hasImageChild: children.some((c) => isGroupResizeImageLikeObject(c)),
14477
+ target: mt ? summarizeFabricObjectForResizeDebug(mt) : null,
14478
+ children: children.map((c) => {
14479
+ var _a3;
14480
+ return {
14481
+ type: c == null ? void 0 : c.type,
14482
+ ctor: (_a3 = c == null ? void 0 : c.constructor) == null ? void 0 : _a3.name,
14483
+ summary: summarizeFabricObjectForResizeDebug(c)
14484
+ };
14485
+ })
14486
+ });
14487
+ } catch (err) {
14488
+ console.warn("[Pixldocs][group-image-side-resize] modified-entry log failed", err);
14489
+ }
14462
14490
  try {
14463
14491
  const t = e.target;
14464
14492
  if (t instanceof fabric__namespace.ActiveSelection) {
@@ -14496,7 +14524,7 @@ const PageCanvas = react.forwardRef(
14496
14524
  const active = fabricCanvas.getActiveObject();
14497
14525
  const activeId = active ? getObjectId(active) : null;
14498
14526
  if (active && activeId && activeId !== "__background__" && !(active instanceof fabric__namespace.Group)) {
14499
- const pageChildrenForParent = ((_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
14527
+ const pageChildrenForParent = ((_b2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _b2.children) ?? [];
14500
14528
  const parentGroup = findParentGroup(pageChildrenForParent, activeId);
14501
14529
  if (parentGroup && isGroup(parentGroup) && parentGroup.backgroundColor) {
14502
14530
  let fabricSectionGroup = active.group && active.group instanceof fabric__namespace.Group ? active.group : null;
@@ -14578,7 +14606,7 @@ const PageCanvas = react.forwardRef(
14578
14606
  useEditorStore.getState().reflowStackGroupInPage(pageId, groupId);
14579
14607
  }
14580
14608
  const stateAfter = useEditorStore.getState();
14581
- const pageAfter = ((_b2 = stateAfter.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _b2.children) ?? [];
14609
+ const pageAfter = ((_c = stateAfter.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _c.children) ?? [];
14582
14610
  const groupNodeAfter = findNodeById(pageAfter, groupId);
14583
14611
  if (groupNodeAfter) {
14584
14612
  const abs = getAbsoluteBounds(groupNodeAfter, pageAfter);
@@ -14641,7 +14669,7 @@ const PageCanvas = react.forwardRef(
14641
14669
  }
14642
14670
  if (active && active instanceof fabric__namespace.Group && active.__docuforgeSectionGroup && getObjectId(active)) {
14643
14671
  const groupId = getObjectId(active);
14644
- const pageChildrenSec = ((_c = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _c.children) ?? [];
14672
+ const pageChildrenSec = ((_d = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _d.children) ?? [];
14645
14673
  const modifiedTarget2 = e == null ? void 0 : e.target;
14646
14674
  const resizeScaleTarget = lastResizeScaleTargetRef.current;
14647
14675
  lastResizeScaleTargetRef.current = null;
@@ -14672,7 +14700,7 @@ const PageCanvas = react.forwardRef(
14672
14700
  const node = findNodeById(pageChildrenSec, groupId);
14673
14701
  if (isChildModified && node && !groupMoved) {
14674
14702
  const stateAfter = useEditorStore.getState();
14675
- const pageAfter = ((_d = stateAfter.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _d.children) ?? [];
14703
+ const pageAfter = ((_e = stateAfter.canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _e.children) ?? [];
14676
14704
  const groupNodeAfter = findNodeById(pageAfter, groupId);
14677
14705
  if (groupNodeAfter) {
14678
14706
  const abs = getAbsoluteBounds(groupNodeAfter, pageAfter);
@@ -14688,7 +14716,7 @@ const PageCanvas = react.forwardRef(
14688
14716
  }
14689
14717
  if (active && active instanceof fabric__namespace.Group && !(active instanceof fabric__namespace.ActiveSelection) && getObjectId(active)) {
14690
14718
  const groupId = getObjectId(active);
14691
- const pageChildren3 = ((_e = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _e.children) ?? [];
14719
+ const pageChildren3 = ((_f = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _f.children) ?? [];
14692
14720
  const w = (active.width ?? 0) * (active.scaleX ?? 1);
14693
14721
  const h = (active.height ?? 0) * (active.scaleY ?? 1);
14694
14722
  const centerX = active.left ?? 0;
@@ -14710,7 +14738,7 @@ const PageCanvas = react.forwardRef(
14710
14738
  }
14711
14739
  const activeObj = fabricCanvas.getActiveObject();
14712
14740
  let activeObjects = fabricCanvas.getActiveObjects();
14713
- const activeSelectionMoveStart = activeObj instanceof fabric__namespace.ActiveSelection && ((_f = activeSelectionMoveStartRef.current) == null ? void 0 : _f.selection) === activeObj ? activeSelectionMoveStartRef.current : null;
14741
+ const activeSelectionMoveStart = activeObj instanceof fabric__namespace.ActiveSelection && ((_g = activeSelectionMoveStartRef.current) == null ? void 0 : _g.selection) === activeObj ? activeSelectionMoveStartRef.current : null;
14714
14742
  const activeSelectionDelta = activeObj instanceof fabric__namespace.ActiveSelection && activeSelectionMoveStart ? (() => {
14715
14743
  const rect = activeObj.getBoundingRect();
14716
14744
  return {
@@ -15129,7 +15157,7 @@ const PageCanvas = react.forwardRef(
15129
15157
  const localScaleX = 1 / sx;
15130
15158
  const localScaleY = 1 / sy;
15131
15159
  obj.set({ scaleX: localScaleX, scaleY: localScaleY });
15132
- const selectionMatrix = (_g = activeObj == null ? void 0 : activeObj.calcTransformMatrix) == null ? void 0 : _g.call(activeObj);
15160
+ const selectionMatrix = (_h = activeObj == null ? void 0 : activeObj.calcTransformMatrix) == null ? void 0 : _h.call(activeObj);
15133
15161
  const localCenter = selectionMatrix ? fabric__namespace.util.transformPoint(preBakeCenter, fabric__namespace.util.invertTransform(selectionMatrix)) : preBakeCenter;
15134
15162
  obj.setPositionByOrigin(localCenter, "center", "center");
15135
15163
  }
@@ -15280,7 +15308,7 @@ const PageCanvas = react.forwardRef(
15280
15308
  const localScaleX = 1 / sx;
15281
15309
  const localScaleY = 1 / sy;
15282
15310
  obj.set({ scaleX: localScaleX, scaleY: localScaleY });
15283
- const selectionMatrix = (_h = activeObj == null ? void 0 : activeObj.calcTransformMatrix) == null ? void 0 : _h.call(activeObj);
15311
+ const selectionMatrix = (_i = activeObj == null ? void 0 : activeObj.calcTransformMatrix) == null ? void 0 : _i.call(activeObj);
15284
15312
  const localCenter = selectionMatrix ? fabric__namespace.util.transformPoint(preBakeCenter, fabric__namespace.util.invertTransform(selectionMatrix)) : preBakeCenter;
15285
15313
  obj.setPositionByOrigin(localCenter, "center", "center");
15286
15314
  } else {
@@ -15428,7 +15456,7 @@ const PageCanvas = react.forwardRef(
15428
15456
  updateElement(objId, elementUpdate, { recordHistory: false, skipLayoutRecalc: true });
15429
15457
  obj.setCoords();
15430
15458
  }
15431
- const pageChildrenForReflow = ((_i = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _i.children) ?? [];
15459
+ const pageChildrenForReflow = ((_j = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _j.children) ?? [];
15432
15460
  const stackGroupsToReflow = /* @__PURE__ */ new Set();
15433
15461
  for (const id of modifiedIdsThisRound) {
15434
15462
  const parent = findParentGroup(pageChildrenForReflow, id);
@@ -15439,7 +15467,8 @@ const PageCanvas = react.forwardRef(
15439
15467
  for (const gid of stackGroupsToReflow) {
15440
15468
  useEditorStore.getState().reflowStackGroupInPage(pageId, gid);
15441
15469
  }
15442
- if (activeObj instanceof fabric__namespace.ActiveSelection && activeObjects.length > 0) {
15470
+ const shouldRebuildActiveSelectionAfterPersist = activeObj instanceof fabric__namespace.ActiveSelection && (!!activeSelectionResizeHandle || pendingCropGroupFrameBakes.length > 0 || Math.abs((activeObj.scaleX ?? 1) - 1) > 1e-3 || Math.abs((activeObj.scaleY ?? 1) - 1) > 1e-3);
15471
+ if (activeObj instanceof fabric__namespace.ActiveSelection && activeObjects.length > 0 && shouldRebuildActiveSelectionAfterPersist) {
15443
15472
  const wasGroupSel = activeObj.__pixldocsGroupSelection;
15444
15473
  const membersToReselect = activeObjects.filter((o) => {
15445
15474
  const oid = getObjectId(o);
@@ -24568,9 +24597,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24568
24597
  }
24569
24598
  return svgString;
24570
24599
  }
24571
- const resolvedPackageVersion = "0.5.336";
24600
+ const resolvedPackageVersion = "0.5.338";
24572
24601
  const PACKAGE_VERSION = resolvedPackageVersion;
24573
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.336";
24602
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.338";
24574
24603
  const roundParityValue = (value) => {
24575
24604
  if (typeof value !== "number") return value;
24576
24605
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25384,7 +25413,7 @@ class PixldocsRenderer {
25384
25413
  await this.waitForCanvasScene(container, cloned, i);
25385
25414
  }
25386
25415
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25387
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-BgFbzhxa.cjs"));
25416
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-B_BXZamD.cjs"));
25388
25417
  const prepared = preparePagesForExport(
25389
25418
  cloned.pages,
25390
25419
  canvasWidth,
@@ -27704,7 +27733,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27704
27733
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27705
27734
  sanitizeSvgTreeForPdf(svgToDraw);
27706
27735
  try {
27707
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-BgFbzhxa.cjs"));
27736
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-B_BXZamD.cjs"));
27708
27737
  try {
27709
27738
  await logTextMeasurementDiagnostic(svgToDraw);
27710
27739
  } catch {
@@ -28101,4 +28130,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28101
28130
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28102
28131
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28103
28132
  exports.warmTemplateFromForm = warmTemplateFromForm;
28104
- //# sourceMappingURL=index-BUYwGfVW.cjs.map
28133
+ //# sourceMappingURL=index-qdd3MkaO.cjs.map