@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.
@@ -864,7 +864,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
864
864
  const containerH = typeof group.height === "number" ? group.height : void 0;
865
865
  const mainContainer = isVertical ? containerH : containerW;
866
866
  let crossContainer = isVertical ? containerW : containerH;
867
- if (kids.length > 0) {
867
+ if (crossContainer == null && kids.length > 0) {
868
868
  let maxCross = 0;
869
869
  for (const c of kids) {
870
870
  const sz = sizes.get(c.id);
@@ -874,8 +874,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
874
874
  }
875
875
  const crossPad0 = isVertical ? padLeft : padTop;
876
876
  const crossPadEnd = isVertical ? padRight : padBottom;
877
- const computed = maxCross + crossPad0 + crossPadEnd;
878
- crossContainer = crossContainer != null ? Math.max(crossContainer, computed) : computed;
877
+ crossContainer = maxCross + crossPad0 + crossPadEnd;
879
878
  }
880
879
  if (align !== "start" && crossContainer != null && kids.length > 0) {
881
880
  const crossPad0 = isVertical ? padLeft : padTop;
@@ -918,7 +917,7 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
918
917
  const free = innerMain - totalMain - baseGapTotal;
919
918
  let offset = 0;
920
919
  let extraGap = 0;
921
- if (free > 0) {
920
+ if (free !== 0) {
922
921
  switch (justify) {
923
922
  case "center":
924
923
  offset = free / 2;
@@ -927,18 +926,20 @@ function resolveStackGroupEffectivePositions(group, pageChildren, options) {
927
926
  offset = free;
928
927
  break;
929
928
  case "space-between":
930
- if (kids.length > 1) extraGap = free / (kids.length - 1);
929
+ if (kids.length > 1 && free > 0) extraGap = free / (kids.length - 1);
931
930
  else offset = free / 2;
932
931
  break;
933
932
  case "space-around":
934
- if (kids.length > 0) {
933
+ if (kids.length > 0 && free > 0) {
935
934
  extraGap = free / kids.length;
936
935
  offset = extraGap / 2;
937
936
  }
938
937
  break;
939
938
  case "space-evenly":
940
- extraGap = free / (kids.length + 1);
941
- offset = extraGap;
939
+ if (free > 0) {
940
+ extraGap = free / (kids.length + 1);
941
+ offset = extraGap;
942
+ }
942
943
  break;
943
944
  }
944
945
  }
@@ -10620,6 +10621,30 @@ function runFontReloadAndReflow(opts) {
10620
10621
  } catch {
10621
10622
  }
10622
10623
  }
10624
+ const reinitTextboxesIn = (parent) => {
10625
+ const children = typeof parent.getObjects === "function" ? parent.getObjects() : [];
10626
+ for (const obj of children) {
10627
+ if (obj instanceof fabric.Textbox) {
10628
+ try {
10629
+ obj.initDimensions();
10630
+ obj.setCoords();
10631
+ obj.dirty = true;
10632
+ } catch {
10633
+ }
10634
+ } else if (obj instanceof fabric.Group) {
10635
+ reinitTextboxesIn(obj);
10636
+ try {
10637
+ obj.dirty = true;
10638
+ } catch {
10639
+ }
10640
+ }
10641
+ }
10642
+ };
10643
+ try {
10644
+ reinitTextboxesIn(canvas);
10645
+ } catch (e) {
10646
+ console.warn("[canvasReflow] textbox re-wrap failed:", e);
10647
+ }
10623
10648
  if (persistTextboxSize && pageTree.length) {
10624
10649
  const elements = flattenChildren(pageTree);
10625
10650
  canvas.getObjects().forEach((obj) => {
@@ -26329,9 +26354,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
26329
26354
  }
26330
26355
  return svgString;
26331
26356
  }
26332
- const resolvedPackageVersion = "0.5.474";
26357
+ const resolvedPackageVersion = "0.5.476";
26333
26358
  const PACKAGE_VERSION = resolvedPackageVersion;
26334
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.474";
26359
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.476";
26335
26360
  const roundParityValue = (value) => {
26336
26361
  if (typeof value !== "number") return value;
26337
26362
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -27145,7 +27170,7 @@ class PixldocsRenderer {
27145
27170
  await this.waitForCanvasScene(container, cloned, i);
27146
27171
  }
27147
27172
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
27148
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-auFctmty.js");
27173
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-hxP9CjSA.js");
27149
27174
  const prepared = preparePagesForExport(
27150
27175
  cloned.pages,
27151
27176
  canvasWidth,
@@ -29465,7 +29490,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
29465
29490
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
29466
29491
  sanitizeSvgTreeForPdf(svgToDraw);
29467
29492
  try {
29468
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-auFctmty.js");
29493
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-hxP9CjSA.js");
29469
29494
  try {
29470
29495
  await logTextMeasurementDiagnostic(svgToDraw);
29471
29496
  } catch {
@@ -29782,4 +29807,4 @@ export {
29782
29807
  buildTeaserBlurFlatKeys as y,
29783
29808
  collectFontDescriptorsFromConfig as z
29784
29809
  };
29785
- //# sourceMappingURL=index-DsthQYTx.js.map
29810
+ //# sourceMappingURL=index-DdWNxAHH.js.map