@pixldocs/canvas-renderer 0.5.474 → 0.5.476

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.
@@ -882,7 +882,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
882
882
  const containerH = typeof group.height === "number" ? group.height : void 0;
883
883
  const mainContainer = isVertical ? containerH : containerW;
884
884
  let crossContainer = isVertical ? containerW : containerH;
885
- if (kids.length > 0) {
885
+ if (crossContainer == null && kids.length > 0) {
886
886
  let maxCross = 0;
887
887
  for (const c of kids) {
888
888
  const sz = sizes.get(c.id);
@@ -892,8 +892,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
892
892
  }
893
893
  const crossPad0 = isVertical ? padLeft : padTop;
894
894
  const crossPadEnd = isVertical ? padRight : padBottom;
895
- const computed = maxCross + crossPad0 + crossPadEnd;
896
- crossContainer = crossContainer != null ? Math.max(crossContainer, computed) : computed;
895
+ crossContainer = maxCross + crossPad0 + crossPadEnd;
897
896
  }
898
897
  if (align !== "start" && crossContainer != null && kids.length > 0) {
899
898
  const crossPad0 = isVertical ? padLeft : padTop;
@@ -936,7 +935,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
936
935
  const free = innerMain - totalMain - baseGapTotal;
937
936
  let offset = 0;
938
937
  let extraGap = 0;
939
- if (free > 0) {
938
+ if (free !== 0) {
940
939
  switch (justify) {
941
940
  case "center":
942
941
  offset = free / 2;
@@ -945,18 +944,20 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
945
944
  offset = free;
946
945
  break;
947
946
  case "space-between":
948
- if (kids.length > 1) extraGap = free / (kids.length - 1);
947
+ if (kids.length > 1 && free > 0) extraGap = free / (kids.length - 1);
949
948
  else offset = free / 2;
950
949
  break;
951
950
  case "space-around":
952
- if (kids.length > 0) {
951
+ if (kids.length > 0 && free > 0) {
953
952
  extraGap = free / kids.length;
954
953
  offset = extraGap / 2;
955
954
  }
956
955
  break;
957
956
  case "space-evenly":
958
- extraGap = free / (kids.length + 1);
959
- offset = extraGap;
957
+ if (free > 0) {
958
+ extraGap = free / (kids.length + 1);
959
+ offset = extraGap;
960
+ }
960
961
  break;
961
962
  }
962
963
  }
@@ -10638,6 +10639,30 @@ function runFontReloadAndReflow(opts) {
10638
10639
  } catch {
10639
10640
  }
10640
10641
  }
10642
+ const reinitTextboxesIn = (parent) => {
10643
+ const children = typeof parent.getObjects === "function" ? parent.getObjects() : [];
10644
+ for (const obj of children) {
10645
+ if (obj instanceof fabric__namespace.Textbox) {
10646
+ try {
10647
+ obj.initDimensions();
10648
+ obj.setCoords();
10649
+ obj.dirty = true;
10650
+ } catch {
10651
+ }
10652
+ } else if (obj instanceof fabric__namespace.Group) {
10653
+ reinitTextboxesIn(obj);
10654
+ try {
10655
+ obj.dirty = true;
10656
+ } catch {
10657
+ }
10658
+ }
10659
+ }
10660
+ };
10661
+ try {
10662
+ reinitTextboxesIn(canvas);
10663
+ } catch (e) {
10664
+ console.warn("[canvasReflow] textbox re-wrap failed:", e);
10665
+ }
10641
10666
  if (persistTextboxSize && pageTree.length) {
10642
10667
  const elements = flattenChildren(pageTree);
10643
10668
  canvas.getObjects().forEach((obj) => {
@@ -26347,9 +26372,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
26347
26372
  }
26348
26373
  return svgString;
26349
26374
  }
26350
- const resolvedPackageVersion = "0.5.474";
26375
+ const resolvedPackageVersion = "0.5.476";
26351
26376
  const PACKAGE_VERSION = resolvedPackageVersion;
26352
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.474";
26377
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.476";
26353
26378
  const roundParityValue = (value) => {
26354
26379
  if (typeof value !== "number") return value;
26355
26380
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -27163,7 +27188,7 @@ class PixldocsRenderer {
27163
27188
  await this.waitForCanvasScene(container, cloned, i);
27164
27189
  }
27165
27190
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
27166
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-Cgw2jQ1F.cjs"));
27191
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-z8aNYx-V.cjs"));
27167
27192
  const prepared = preparePagesForExport(
27168
27193
  cloned.pages,
27169
27194
  canvasWidth,
@@ -29483,7 +29508,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29483
29508
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29484
29509
  sanitizeSvgTreeForPdf(svgToDraw);
29485
29510
  try {
29486
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-Cgw2jQ1F.cjs"));
29511
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-z8aNYx-V.cjs"));
29487
29512
  try {
29488
29513
  await logTextMeasurementDiagnostic(svgToDraw);
29489
29514
  } catch {
@@ -29797,4 +29822,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
29797
29822
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
29798
29823
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
29799
29824
  exports.warmTemplateFromForm = warmTemplateFromForm;
29800
- //# sourceMappingURL=index-D2hncOO0.cjs.map
29825
+ //# sourceMappingURL=index-NvHV65YD.cjs.map