@pixldocs/canvas-renderer 0.5.180 → 0.5.181

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.
package/README.md CHANGED
@@ -344,3 +344,30 @@ const { config } = await resolveTemplateData({
344
344
  ## License
345
345
 
346
346
  UNLICENSED — Private package for Pixldocs ecosystem only.
347
+
348
+ ---
349
+
350
+ ## Preview Blur (anti-screenshot)
351
+
352
+ Set `previewBlur: true` on any text or image element in your config to redact
353
+ it in watermarked previews — useful for protecting paid content (e.g. biodata
354
+ reference rows) from screenshot theft. The block characters (`█`) replace
355
+ the text content so layout/wrap stays identical, but content is unreadable.
356
+
357
+ Preview-blur is gated identically to the watermark: it only runs when
358
+ `watermark === true` (or, by default, when `template.price > 0` and the user
359
+ hasn't paid). Clean / paid downloads always render the original content.
360
+
361
+ ```ts
362
+ // In your template config
363
+ {
364
+ id: 'reference-1-name',
365
+ type: 'text',
366
+ text: 'John Doe',
367
+ previewBlur: true, // ← redacted in preview, full in paid download
368
+ ...
369
+ }
370
+ ```
371
+
372
+ No API change is required on the consumer side — the same `renderFromForm`,
373
+ `renderPdfFromForm`, etc. respect the flag automatically.
@@ -16480,9 +16480,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
16480
16480
  }
16481
16481
  return svgString;
16482
16482
  }
16483
- const resolvedPackageVersion = "0.5.180";
16483
+ const resolvedPackageVersion = "0.5.181";
16484
16484
  const PACKAGE_VERSION = resolvedPackageVersion;
16485
- const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.180";
16485
+ const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.181";
16486
16486
  const roundParityValue = (value) => {
16487
16487
  if (typeof value !== "number") return value;
16488
16488
  return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
@@ -16781,6 +16781,8 @@ class PixldocsRenderer {
16781
16781
  if (shouldWatermark) {
16782
16782
  const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
16783
16783
  configToRender = injectWatermark(configToRender, watermarkOptions);
16784
+ const { injectPreviewBlur } = await import("./previewBlur-Dj6dSSNO.js");
16785
+ configToRender = injectPreviewBlur(configToRender);
16784
16786
  }
16785
16787
  return this.renderAllPages(configToRender, renderOpts);
16786
16788
  }
@@ -16838,6 +16840,8 @@ class PixldocsRenderer {
16838
16840
  if (shouldWatermark) {
16839
16841
  const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
16840
16842
  configToRender = injectWatermark(configToRender, watermarkOptions);
16843
+ const { injectPreviewBlur } = await import("./previewBlur-Dj6dSSNO.js");
16844
+ configToRender = injectPreviewBlur(configToRender);
16841
16845
  }
16842
16846
  return this.renderAllPageSvgs(configToRender);
16843
16847
  }
@@ -16880,6 +16884,8 @@ class PixldocsRenderer {
16880
16884
  if (shouldWatermark) {
16881
16885
  const { injectWatermark } = await import("./canvasWatermark-pkhacGge.js");
16882
16886
  configToRender = injectWatermark(configToRender, watermarkOptions);
16887
+ const { injectPreviewBlur } = await import("./previewBlur-Dj6dSSNO.js");
16888
+ configToRender = injectPreviewBlur(configToRender);
16883
16889
  }
16884
16890
  return this.renderPdfViaClientExport(configToRender, {
16885
16891
  title: title ?? resolved.config.name,
@@ -16984,7 +16990,7 @@ class PixldocsRenderer {
16984
16990
  await this.waitForCanvasScene(container, cloned, i);
16985
16991
  }
16986
16992
  console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
16987
- const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DCZJhOmn.js");
16993
+ const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-KXmgWTkZ.js");
16988
16994
  const prepared = preparePagesForExport(
16989
16995
  cloned.pages,
16990
16996
  canvasWidth,
@@ -19129,7 +19135,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
19129
19135
  if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
19130
19136
  sanitizeSvgTreeForPdf(svgToDraw);
19131
19137
  try {
19132
- const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DCZJhOmn.js");
19138
+ const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-KXmgWTkZ.js");
19133
19139
  try {
19134
19140
  await logTextMeasurementDiagnostic(svgToDraw);
19135
19141
  } catch {
@@ -19525,4 +19531,4 @@ export {
19525
19531
  collectFontDescriptorsFromConfig as y,
19526
19532
  collectFontsFromConfig as z
19527
19533
  };
19528
- //# sourceMappingURL=index-DdrxSxRr.js.map
19534
+ //# sourceMappingURL=index-Ck5VHk_Q.js.map