@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.
@@ -6683,6 +6683,9 @@ if (TextboxProto._wrapLine && !TextboxProto.__pixldocsOrigWrapLine) {
6683
6683
  try {
6684
6684
  const additionalSpace = TextboxProto._getWidthOfCharSpacing.call(this);
6685
6685
  const data = ((_a2 = ref == null ? void 0 : ref.wordsData) == null ? void 0 : _a2[lineIndex]) ?? [];
6686
+ if (data.length === 0 || data.every(({ word }) => word.length === 0)) {
6687
+ return [[]];
6688
+ }
6686
6689
  const effective = Math.max(1, desiredWidth - reservedSpace);
6687
6690
  const infix = " ";
6688
6691
  const measureWord = TextboxProto._measureWord;
@@ -9461,7 +9464,7 @@ function createShape(element) {
9461
9464
  function createText(element) {
9462
9465
  var _a2, _b2, _c, _d, _e;
9463
9466
  const overflowPolicy = element.overflowPolicy || "grow-and-push";
9464
- let text = element.text != null && element.text !== "" ? element.text : " ";
9467
+ let text = element.text ?? "";
9465
9468
  let fontSize = element.fontSize || 16;
9466
9469
  const minFontSize = element.minFontSize || 8;
9467
9470
  const maxLines = element.maxLines || 3;
@@ -9469,7 +9472,7 @@ function createText(element) {
9469
9472
  let parsedStyles = {};
9470
9473
  if (formattingEnabled) {
9471
9474
  const parsed = parseTextMarkdown(text);
9472
- text = parsed.plainText || " ";
9475
+ text = parsed.plainText ?? "";
9473
9476
  parsedStyles = parsed.styles;
9474
9477
  }
9475
9478
  const baseWidth = element.width && element.width > 0 ? element.width : 200;
@@ -9552,7 +9555,7 @@ function createText(element) {
9552
9555
  }
9553
9556
  }
9554
9557
  if (overflowPolicy === "max-lines-ellipsis") {
9555
- const originalText = element.text || " ";
9558
+ const originalText = element.text ?? "";
9556
9559
  const countLines = (testText) => {
9557
9560
  var _a3;
9558
9561
  const tb = new fabric.Textbox(testText, {
@@ -9643,6 +9646,7 @@ function createText(element) {
9643
9646
  ...element.textPath && element.textPath.preset && element.textPath.preset !== "none" ? { textPath: element.textPath } : {}
9644
9647
  });
9645
9648
  textbox.__formattingEnabled = formattingEnabled;
9649
+ textbox.__pixldocsEmptyPlaceholder = false;
9646
9650
  textbox.initDimensions();
9647
9651
  textbox.set({
9648
9652
  width: targetWidth,
@@ -11732,11 +11736,11 @@ const PageCanvas = forwardRef(
11732
11736
  const targetWidth = Math.max(1, Number(element.width) > 0 ? Number(element.width) : Number(obj.width ?? 200));
11733
11737
  const overflowPolicy = element.overflowPolicy || "grow-and-push";
11734
11738
  const splitByGrapheme = overflowPolicy === "auto-shrink" ? false : element.splitByGrapheme ?? element.wordWrap === "break-word";
11735
- let reflowText = element.text != null && element.text !== "" ? element.text : " ";
11739
+ let reflowText = element.text ?? "";
11736
11740
  let reflowParsedStyles = null;
11737
11741
  if (element.formattingEnabled === true) {
11738
11742
  const parsed = parseTextMarkdown(reflowText);
11739
- reflowText = parsed.plainText || " ";
11743
+ reflowText = parsed.plainText ?? "";
11740
11744
  reflowParsedStyles = parsed.styles;
11741
11745
  }
11742
11746
  obj.set({
@@ -11757,6 +11761,7 @@ const PageCanvas = forwardRef(
11757
11761
  }
11758
11762
  obj.editable = element.formattingEnabled !== true;
11759
11763
  obj.__formattingEnabled = element.formattingEnabled === true;
11764
+ obj.__pixldocsEmptyPlaceholder = false;
11760
11765
  obj.initDimensions();
11761
11766
  if (Math.abs((obj.width ?? 0) - targetWidth) > 0.01) {
11762
11767
  obj.width = targetWidth;
@@ -14520,6 +14525,22 @@ const PageCanvas = forwardRef(
14520
14525
  return;
14521
14526
  }
14522
14527
  editingTextIdRef.current = elementId || null;
14528
+ if (target.__pixldocsEmptyPlaceholder) {
14529
+ try {
14530
+ target.__pixldocsEmptyPlaceholder = false;
14531
+ target.set("text", "");
14532
+ target.hiddenTextarea && (target.hiddenTextarea.value = "");
14533
+ target.initDimensions();
14534
+ target.setCoords();
14535
+ target.selectionStart = 0;
14536
+ target.selectionEnd = 0;
14537
+ fabricCanvas.requestRenderAll();
14538
+ } catch {
14539
+ }
14540
+ selectAllTextOnEditingEnterRef.current = null;
14541
+ setEditingText(true);
14542
+ return;
14543
+ }
14523
14544
  if (elementId && selectAllTextOnEditingEnterRef.current === elementId) {
14524
14545
  selectAllTextOnEditingEnterRef.current = null;
14525
14546
  selectAllActiveTextbox(target);
@@ -23418,9 +23439,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
23418
23439
  }
23419
23440
  return svgString;
23420
23441
  }
23421
- const resolvedPackageVersion = "0.5.248";
23442
+ const resolvedPackageVersion = "0.5.250";
23422
23443
  const PACKAGE_VERSION = resolvedPackageVersion;
23423
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.248";
23444
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.250";
23424
23445
  const roundParityValue = (value) => {
23425
23446
  if (typeof value !== "number") return value;
23426
23447
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -24234,7 +24255,7 @@ class PixldocsRenderer {
24234
24255
  await this.waitForCanvasScene(container, cloned, i);
24235
24256
  }
24236
24257
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
24237
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-C-KlhNei.js");
24258
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DnXFneU0.js");
24238
24259
  const prepared = preparePagesForExport(
24239
24260
  cloned.pages,
24240
24261
  canvasWidth,
@@ -26554,7 +26575,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
26554
26575
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
26555
26576
  sanitizeSvgTreeForPdf(svgToDraw);
26556
26577
  try {
26557
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-C-KlhNei.js");
26578
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DnXFneU0.js");
26558
26579
  try {
26559
26580
  await logTextMeasurementDiagnostic(svgToDraw);
26560
26581
  } catch {
@@ -26954,4 +26975,4 @@ export {
26954
26975
  buildTeaserBlurFlatKeys as y,
26955
26976
  collectFontDescriptorsFromConfig as z
26956
26977
  };
26957
- //# sourceMappingURL=index-BElB2Mv_.js.map
26978
+ //# sourceMappingURL=index-BXFn9Ke9.js.map