@pixldocs/canvas-renderer 0.5.346 → 0.5.348

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.
@@ -11234,6 +11234,7 @@ function applyWarpAwareSelectionBorders(selection) {
11234
11234
  }
11235
11235
  selection.hasBorders = true;
11236
11236
  selection.hasControls = true;
11237
+ if (selection.__pixldocsGroupSelection) return;
11237
11238
  try {
11238
11239
  if (selection.__pixldocsAlignedAngle == null) {
11239
11240
  const kids = selection.getObjects();
@@ -11365,11 +11366,17 @@ const PageCanvas = react.forwardRef(
11365
11366
  delete selection.__pixldocsLogicalGroupIds;
11366
11367
  selection.hasBorders = true;
11367
11368
  try {
11369
+ const membersBeforeFrame = selection.getObjects();
11370
+ const selectionMatrixBefore = selection.calcTransformMatrix();
11371
+ const memberWorldMatrices = membersBeforeFrame.map((member) => fabric__namespace.util.multiplyTransformMatrices(
11372
+ selectionMatrixBefore,
11373
+ member.calcOwnMatrix()
11374
+ ));
11368
11375
  const pageChildren2 = ((_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
11369
11376
  const groupNode = findNodeById(pageChildren2, groupId);
11370
11377
  const groupAngle = groupNode && isGroup(groupNode) ? Number(groupNode.angle ?? 0) : 0;
11371
11378
  const groupAbs = groupNode && isGroup(groupNode) ? getAbsoluteBounds(groupNode, pageChildren2) : null;
11372
- if (Number.isFinite(groupAngle) && Math.abs(groupAngle) > 0.01) {
11379
+ if (Number.isFinite(groupAngle)) {
11373
11380
  selection.set({ angle: groupAngle, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0 });
11374
11381
  if (groupAbs) {
11375
11382
  selection.setPositionByOrigin(
@@ -11378,6 +11385,18 @@ const PageCanvas = react.forwardRef(
11378
11385
  "center"
11379
11386
  );
11380
11387
  }
11388
+ const invSelectionAfter = fabric__namespace.util.invertTransform(
11389
+ selection.calcTransformMatrix()
11390
+ );
11391
+ membersBeforeFrame.forEach((member, index) => {
11392
+ const localMatrix = fabric__namespace.util.multiplyTransformMatrices(
11393
+ invSelectionAfter,
11394
+ memberWorldMatrices[index]
11395
+ );
11396
+ fabric__namespace.util.applyTransformToObject(member, localMatrix);
11397
+ member.setCoords();
11398
+ member.dirty = true;
11399
+ });
11381
11400
  selection.setCoords();
11382
11401
  }
11383
11402
  } catch {
@@ -15534,9 +15553,13 @@ const PageCanvas = react.forwardRef(
15534
15553
  skewX: isLineObj ? 0 : finalSkewX,
15535
15554
  skewY: isLineObj ? 0 : finalSkewY,
15536
15555
  scaleX: finalScaleX,
15537
- scaleY: finalScaleY,
15538
- transformMatrix: finalAbsoluteMatrix
15556
+ scaleY: finalScaleY
15539
15557
  };
15558
+ if (!isLogicalGroupAS) {
15559
+ elementUpdate.transformMatrix = finalAbsoluteMatrix;
15560
+ } else {
15561
+ elementUpdate.transformMatrix = void 0;
15562
+ }
15540
15563
  if (obj instanceof fabric__namespace.Textbox) {
15541
15564
  const bakedTextScaleUpdates = obj.__pixldocsBakedTextScaleUpdates;
15542
15565
  if (bakedTextScaleUpdates && typeof bakedTextScaleUpdates === "object") {
@@ -17061,9 +17084,7 @@ const PageCanvas = react.forwardRef(
17061
17084
  if (sameSelection && isFlatGroupSelection) {
17062
17085
  if (selectedGroupSelectionId && active instanceof fabric__namespace.ActiveSelection) {
17063
17086
  if (isPureSingleGroupSelection) {
17064
- active.__pixldocsGroupSelection = selectedGroupSelectionId;
17065
- delete active.__pixldocsLogicalGroupIds;
17066
- suppressGroupMemberBordersRef.current = active.getObjects();
17087
+ applyLogicalGroupSelectionVisualState(active, selectedGroupSelectionId);
17067
17088
  } else {
17068
17089
  delete active.__pixldocsGroupSelection;
17069
17090
  active.__pixldocsLogicalGroupIds = selectedGroupIds;
@@ -17103,8 +17124,7 @@ const PageCanvas = react.forwardRef(
17103
17124
  const selection = new fabric__namespace.ActiveSelection(toSelect, { canvas: fc });
17104
17125
  if (selectedGroupSelectionId) {
17105
17126
  if (isPureSingleGroupSelection) {
17106
- selection.__pixldocsGroupSelection = selectedGroupSelectionId;
17107
- suppressGroupMemberBordersRef.current = toSelect;
17127
+ applyLogicalGroupSelectionVisualState(selection, selectedGroupSelectionId);
17108
17128
  } else {
17109
17129
  selection.__pixldocsLogicalGroupIds = selectedGroupIds;
17110
17130
  selection.hasBorders = true;
@@ -24739,9 +24759,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
24739
24759
  }
24740
24760
  return svgString;
24741
24761
  }
24742
- const resolvedPackageVersion = "0.5.346";
24762
+ const resolvedPackageVersion = "0.5.348";
24743
24763
  const PACKAGE_VERSION = resolvedPackageVersion;
24744
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.346";
24764
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.348";
24745
24765
  const roundParityValue = (value) => {
24746
24766
  if (typeof value !== "number") return value;
24747
24767
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -25555,7 +25575,7 @@ class PixldocsRenderer {
25555
25575
  await this.waitForCanvasScene(container, cloned, i);
25556
25576
  }
25557
25577
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
25558
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DRpVTciP.cjs"));
25578
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-IeTP9Bi1.cjs"));
25559
25579
  const prepared = preparePagesForExport(
25560
25580
  cloned.pages,
25561
25581
  canvasWidth,
@@ -27875,7 +27895,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
27875
27895
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
27876
27896
  sanitizeSvgTreeForPdf(svgToDraw);
27877
27897
  try {
27878
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DRpVTciP.cjs"));
27898
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-IeTP9Bi1.cjs"));
27879
27899
  try {
27880
27900
  await logTextMeasurementDiagnostic(svgToDraw);
27881
27901
  } catch {
@@ -28272,4 +28292,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
28272
28292
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
28273
28293
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
28274
28294
  exports.warmTemplateFromForm = warmTemplateFromForm;
28275
- //# sourceMappingURL=index-C6VMQJMY.cjs.map
28295
+ //# sourceMappingURL=index-CaQvuDpL.cjs.map