@pixldocs/canvas-renderer 0.5.248 → 0.5.250

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.
@@ -6701,6 +6701,9 @@ if (TextboxProto._wrapLine && !TextboxProto.__pixldocsOrigWrapLine) {
6701
6701
  try {
6702
6702
  const additionalSpace = TextboxProto._getWidthOfCharSpacing.call(this);
6703
6703
  const data = ((_a2 = ref == null ? void 0 : ref.wordsData) == null ? void 0 : _a2[lineIndex]) ?? [];
6704
+ if (data.length === 0 || data.every(({ word }) => word.length === 0)) {
6705
+ return [[]];
6706
+ }
6704
6707
  const effective = Math.max(1, desiredWidth - reservedSpace);
6705
6708
  const infix = " ";
6706
6709
  const measureWord = TextboxProto._measureWord;
@@ -9479,7 +9482,7 @@ function createShape(element) {
9479
9482
  function createText(element) {
9480
9483
  var _a2, _b2, _c, _d, _e;
9481
9484
  const overflowPolicy = element.overflowPolicy || "grow-and-push";
9482
- let text = element.text != null && element.text !== "" ? element.text : " ";
9485
+ let text = element.text ?? "";
9483
9486
  let fontSize = element.fontSize || 16;
9484
9487
  const minFontSize = element.minFontSize || 8;
9485
9488
  const maxLines = element.maxLines || 3;
@@ -9487,7 +9490,7 @@ function createText(element) {
9487
9490
  let parsedStyles = {};
9488
9491
  if (formattingEnabled) {
9489
9492
  const parsed = parseTextMarkdown(text);
9490
- text = parsed.plainText || " ";
9493
+ text = parsed.plainText ?? "";
9491
9494
  parsedStyles = parsed.styles;
9492
9495
  }
9493
9496
  const baseWidth = element.width && element.width > 0 ? element.width : 200;
@@ -9570,7 +9573,7 @@ function createText(element) {
9570
9573
  }
9571
9574
  }
9572
9575
  if (overflowPolicy === "max-lines-ellipsis") {
9573
- const originalText = element.text || " ";
9576
+ const originalText = element.text ?? "";
9574
9577
  const countLines = (testText) => {
9575
9578
  var _a3;
9576
9579
  const tb = new fabric__namespace.Textbox(testText, {
@@ -9661,6 +9664,7 @@ function createText(element) {
9661
9664
  ...element.textPath && element.textPath.preset && element.textPath.preset !== "none" ? { textPath: element.textPath } : {}
9662
9665
  });
9663
9666
  textbox.__formattingEnabled = formattingEnabled;
9667
+ textbox.__pixldocsEmptyPlaceholder = false;
9664
9668
  textbox.initDimensions();
9665
9669
  textbox.set({
9666
9670
  width: targetWidth,
@@ -11750,11 +11754,11 @@ const PageCanvas = react.forwardRef(
11750
11754
  const targetWidth = Math.max(1, Number(element.width) > 0 ? Number(element.width) : Number(obj.width ?? 200));
11751
11755
  const overflowPolicy = element.overflowPolicy || "grow-and-push";
11752
11756
  const splitByGrapheme = overflowPolicy === "auto-shrink" ? false : element.splitByGrapheme ?? element.wordWrap === "break-word";
11753
- let reflowText = element.text != null && element.text !== "" ? element.text : " ";
11757
+ let reflowText = element.text ?? "";
11754
11758
  let reflowParsedStyles = null;
11755
11759
  if (element.formattingEnabled === true) {
11756
11760
  const parsed = parseTextMarkdown(reflowText);
11757
- reflowText = parsed.plainText || " ";
11761
+ reflowText = parsed.plainText ?? "";
11758
11762
  reflowParsedStyles = parsed.styles;
11759
11763
  }
11760
11764
  obj.set({
@@ -11775,6 +11779,7 @@ const PageCanvas = react.forwardRef(
11775
11779
  }
11776
11780
  obj.editable = element.formattingEnabled !== true;
11777
11781
  obj.__formattingEnabled = element.formattingEnabled === true;
11782
+ obj.__pixldocsEmptyPlaceholder = false;
11778
11783
  obj.initDimensions();
11779
11784
  if (Math.abs((obj.width ?? 0) - targetWidth) > 0.01) {
11780
11785
  obj.width = targetWidth;
@@ -14538,6 +14543,22 @@ const PageCanvas = react.forwardRef(
14538
14543
  return;
14539
14544
  }
14540
14545
  editingTextIdRef.current = elementId || null;
14546
+ if (target.__pixldocsEmptyPlaceholder) {
14547
+ try {
14548
+ target.__pixldocsEmptyPlaceholder = false;
14549
+ target.set("text", "");
14550
+ target.hiddenTextarea && (target.hiddenTextarea.value = "");
14551
+ target.initDimensions();
14552
+ target.setCoords();
14553
+ target.selectionStart = 0;
14554
+ target.selectionEnd = 0;
14555
+ fabricCanvas.requestRenderAll();
14556
+ } catch {
14557
+ }
14558
+ selectAllTextOnEditingEnterRef.current = null;
14559
+ setEditingText(true);
14560
+ return;
14561
+ }
14541
14562
  if (elementId && selectAllTextOnEditingEnterRef.current === elementId) {
14542
14563
  selectAllTextOnEditingEnterRef.current = null;
14543
14564
  selectAllActiveTextbox(target);
@@ -23436,9 +23457,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
23436
23457
  }
23437
23458
  return svgString;
23438
23459
  }
23439
- const resolvedPackageVersion = "0.5.248";
23460
+ const resolvedPackageVersion = "0.5.250";
23440
23461
  const PACKAGE_VERSION = resolvedPackageVersion;
23441
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.248";
23462
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.250";
23442
23463
  const roundParityValue = (value) => {
23443
23464
  if (typeof value !== "number") return value;
23444
23465
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -24252,7 +24273,7 @@ class PixldocsRenderer {
24252
24273
  await this.waitForCanvasScene(container, cloned, i);
24253
24274
  }
24254
24275
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
24255
- const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-C_y0i2dG.cjs"));
24276
+ const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-FNQGiaqg.cjs"));
24256
24277
  const prepared = preparePagesForExport(
24257
24278
  cloned.pages,
24258
24279
  canvasWidth,
@@ -26572,7 +26593,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
26572
26593
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
26573
26594
  sanitizeSvgTreeForPdf(svgToDraw);
26574
26595
  try {
26575
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-C_y0i2dG.cjs"));
26596
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-FNQGiaqg.cjs"));
26576
26597
  try {
26577
26598
  await logTextMeasurementDiagnostic(svgToDraw);
26578
26599
  } catch {
@@ -26969,4 +26990,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
26969
26990
  exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
26970
26991
  exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
26971
26992
  exports.warmTemplateFromForm = warmTemplateFromForm;
26972
- //# sourceMappingURL=index-KuNxjXIo.cjs.map
26993
+ //# sourceMappingURL=index-uwIqqY-8.cjs.map